我對C語言內存概念並不是非常有經驗。我試圖尋找解決方案,但找不到一個解決方案。一個小但很奇怪的<Segmentation Fault>
我只是想在C中創建動態數組。我試圖用這種方式創建它,同時試圖檢查地址是否連續。該程序運行良好。
但是,我在語句system("pause")
之後得到了分段錯誤。我也嘗試使用調試器進行調試,但沒有運氣!我正在使用Dev CPP。
任何人都可以引導我嗎?
#include<stdio.h>
#include<stdlib.h>
main()
{
int a[0], *ptr, i;
printf("%d", sizeof(a[0]));
a[0]=1;
for(i=1;i<10;i++)
{
ptr=(int *) malloc(sizeof(int));
printf("Enter a[%d]: ", i);
a[i]= *ptr;
scanf("%d", &a[i]);
}
i=0;
while(i<10)
{printf("\n%u", &a[i++]);}
free(ptr);
system("pause");
}
只有GCC首先允許'int a [0];',並且只有當你不使它成爲'-pedantic'時。 C標準根本不允許0作爲數組維度。 –