【发布时间】:2021-04-17 22:07:09
【问题描述】:
我写了一个最小的 C 代码如下:
#include <stdio.h>
struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
};
int main() {
struct Books Book1;
char *tmp;
int counter=0;
scanf("%s", tmp);
return 0;
}
当我编译并运行上述代码时,在提供输入后,我收到以下错误:
❯ gcc main.c
❯ ./a.out
e
[1] 86266 bus error ./a.out
❯ vim main.c
$
当我将上述代码放入函数时,出现“分段错误”。
我不知道这段代码有什么问题。当我注释掉第一行 main(结构的 instatioation)时,它工作正常。任何解释都会被应用。
【问题讨论】:
-
将
char *tmp更改为char tmp[1000]。
标签: c pointers segmentation-fault scanf bus-error