由于某种原因,当我尝试编译我的代码时,.exe文件在完成后就会消失......没有任何错误或警告。
这就是我的代码:
#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都不是NULL。所以如果next是NULL,那么while循环应该停止。
peter.next = NULL; // THIS PART CAUSES MY PROBLEM
这就是我想要实现的目标,但它并不起作用。 :\
来自评论:
我没有收到错误。我输入&#34; gcc -Wall -o test test.c&#34; test.exe在那里存在一秒钟然后它被删除。
答案 0 :(得分:6)
最合理的解释是您的防病毒软件正在删除可执行文件。你的程序在这里编译并运行良好。
无论出于何种原因,可疑行会导致您的防病毒软件与已知病毒匹配的已编译代码。当您删除该行时,它不再与病毒匹配,但当然程序失败。
暂时禁用您的防病毒以确认此假设。