#include <stdio.h>
int main(void)
{
int i;
int *p = (int *) malloc(5 * sizeof(int));
for (i=0; i<10; i++)
*(p + i) = i;
printf("%d ", *p++);
return 0;
}
Итак, я запустил этот код. Теперь мне сказали, что Why won't the output be 4 in this case? (в принятом ответе), что *p++
будет увеличивать указатель сначала, а затем разыгрывать его. Поэтому в приведенном выше коде не следует сначала увеличивать указатель, а затем де-ссылку и, следовательно, вывод должен быть 1
? Вместо этого выход выходит 0
. Зачем?Почему вывод `0` в этом случае?
Пожалуйста, посмотрите, почему бы не использовать] (http://stackoverflow.com/q/605845/2173917) возвращаемое значение 'malloc()' и family в 'C'. –
Ответы, приведенные в вышеприведенном сообщении, в основном говорят о том, что мы должны написать ненужный код, как это имеет отношение к моему вопросу? –
вам нужно '#include' –
BLUEPIXY