出於某種原因,當我嘗試編譯我的代碼時.exe文件在完成後消失...沒有任何錯誤或警告。在C中設置一個指針爲NULL,而不是編譯
這是我的代碼如下所示:
#include <stdio.h>
#include <stdlib.h>
typedef struct student_
{
int matnum;
char vorname[20];
struct student_ *next;
} student;
int main (int argc, char **argv)
{
student hans;
hans.matnum = 12;
student peter;
peter.matnum = 13;
peter.next = NULL; // THIS PART CAUSES MY PROBLEM
hans.next = &peter;
student *curr = &hans;
while(curr != NULL)
{
printf("matnum: %d\n", (*curr).matnum);
curr = curr->next;
}
return 0;
}
我希望它做的是通過迭代CURR並將其設置爲下一每次CURR不是空了。所以如果next是NULL,while循環應該停止。
peter.next = NULL; // THIS PART CAUSES MY PROBLEM
這就是我想要達到的目標,但它不起作用。 :\
從評論:
我沒有得到一個錯誤。當我輸入「gcc -Wall -o test test.c」時,test.exe就會出現一秒鐘,然後就會被刪除。
這沒有任何意義;要麼編譯,要麼不會,並且您會收到錯誤消息。 –
它是編譯錯誤還是運行時錯誤?你能否複製錯誤文本並粘貼你的問題? –
我沒有收到錯誤。當我輸入「gcc -Wall -o test test.c」時,test.exe就會出現一秒鐘,然後就會被刪除。 – user3233698