我在撰寫一個非常基本的程式來學習 C 中的陣列時遇到了這個問題。當陣列大小超過 2 時會出現該訊息。SO:Linux,清除 Linux 作業系統 64 位
#include <stdio.h>
int main (void) {
int array[0], k=0, init;
printf ("Insert amount of values\n");
scanf ("%i", &init);
for (k=1; k<=init; k ) {
printf ("Insert values:");
scanf ("%i", &array[k]);
}
for (k=1; k<=init; k ) {
printf("%i,", array[k]);
}
return 0;
}
Insert amount of values
3
Insert values:4
Insert values:2
Insert values:3
Segmentation fault (core dumped)
嘗試更改陣列的資料型別"%i"和"%d"
uj5u.com熱心網友回復:
您正在初始化一個大小為 1 的陣列int array[0]。
你有兩個選擇:
您為 example 宣告了具有最大預期大小的陣列
int array[10],但您只會報告您的問題并在輸入的第 11 個值處獲得段錯誤。您可以使用
malloc函式動態管理陣列的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/522235.html
標籤:数组C分段故障
下一篇:EXTICR中斷埠
