Pointers 为什么这段代码会产生seg故障?

Pointers 为什么这段代码会产生seg故障?,pointers,segmentation-fault,Pointers,Segmentation Fault,我想知道背景中发生了什么导致了seg故障 char *ptr; fgets(ptr, 200, stdin); fprintf(stderr, "Ptr = %s\n", ptr); 感谢您从未为fgets分配写入空间。因此变量ptr未初始化,取消引用它会导致未定义的行为。发生segfault是因为该值恰好指向不可用的内存 char *ptr = malloc(200); Ptr是一个未初始化(可以是任何形式)的变量。因此fgets将数据转储到未知位置。轰

我想知道背景中发生了什么导致了seg故障

char *ptr;
fgets(ptr, 200, stdin);
fprintf(stderr, "Ptr = %s\n", ptr);

感谢您从未为
fgets
分配写入空间。因此变量
ptr
未初始化,取消引用它会导致未定义的行为。发生segfault是因为该值恰好指向不可用的内存

char *ptr = malloc(200);
Ptr是一个未初始化(可以是任何形式)的变量。因此fgets将数据转储到未知位置。轰