【发布时间】:2018-09-11 00:53:33
【问题描述】:
这段代码不起作用,我不知道为什么,我完全按照教授告诉我们的方式使用了所有东西,我认为它应该起作用,为什么编译器会抛出 Segmentation fault(core dumped) 异常。我做错了什么?
int main() {
int n;
char *chr;
char pchr;
scanf("%s", chr);
scanf(" %d", &n);
char **table = (char **) malloc(n * sizeof(char*));
char *chr2 = chr;
}
这只是我的程序的一部分,但是当我只运行这个代码时,编译器会抛出异常。它甚至不扫描n 数字它只扫描char 然后抛出异常。谢谢你的回答。
【问题讨论】:
-
指针 chr 具有不确定的值。结果,由于语句 scanf("%s", chr); ,程序具有未定义的行为。
-
如果您启用警告,您的编译器应该会告诉您类似“使用未初始化的变量 chr”的内容。
-
Scant 读取标准输入并将与模式(格式)匹配的内容存储在 chr 指向的内存中。哪个是 undef。
标签: c segmentation-fault malloc stack-overflow