0
我想知道在創建seg故障的背景中發生了什麼。這段代碼爲什麼會創建seg故障?
char *ptr;
fgets(ptr, 200, stdin);
fprintf(stderr, "Ptr = %s\n", ptr);
感謝
我想知道在創建seg故障的背景中發生了什麼。這段代碼爲什麼會創建seg故障?
char *ptr;
fgets(ptr, 200, stdin);
fprintf(stderr, "Ptr = %s\n", ptr);
感謝
你從來沒有分配給fgets
寫送入太空。因此變量ptr
未初始化,並且解除引用會導致未定義的行爲。發生段錯誤是因爲該值碰巧指向不可用內存。
char *ptr = malloc(200);
Ptr是未初始化(可能是任何)變量。因此,fgets將數據轉儲到未知位置。繁榮。