Просто догадка ...
Но я предполагаю, что вы запустили его и вошли:
4
1234
Например, вы помещаете 4, а затем 1234, и это зависает. Ну, это было бы потому, что 1234 - это первое число, а не 4 разных числа, поэтому он ждет второго номера. Вам нужно нажать enter или некоторый такой разделитель между каждым числом.
Попробуйте этот набор входов вместо:
4
1234
29
4
5
Вы должны получить:
hey
Pro грамматически, вы должны проверять возвращаемые значения из вызовов функций. Убедитесь, что malloc не возвращает ноль. Убедитесь, что scanf возвращает количество входов, которые вы ожидали прочитать. Добавьте в распечатки, чтобы убедиться, что значения, которые они читают, - это то, что вы ожидали/хотели прочитать.
EDIT: Угадайте, что у вас есть опечатка в программе, которая здесь не отображается. таких как:
scanf("%s", &t);
Или вы получаете «эй» и просто не видите его.
[[email protected] sotest]$ ./a.out
5 5 4 3 23 1
hey[[email protected] sotest]$
Смотрите «эй» является своего рода скрытый в моем приглашении, потому что вам не хватает «\ п» новую строку в распечатке?
Комментарии не для широкого обсуждения; этот разговор был [перемещен в чат] (http://chat.stackoverflow.com/rooms/75968/discussion-on-question-by-antoni4040-why-is-this-c-for-loop-not-working- должным образом). – Taryn
@Wather Vane thats правильно, но с использованием Visual C++ не скомпилируется без трансляции. Так что это было предложение. – Diversity
Работает со мной. Я использую visual studio 2010. – CroCo