0
我使用兩種方法來創建數組。我曾經認爲他們是一樣的,但看起來不一樣。爲什麼在未初始化的數組中有一些奇怪的數字?
char *buffer=malloc((sizeof(char)*100));
char buffer1[100];
strcpy(buffer,"Eric");
strcpy(buffer1,"Eric");
for (int i=0; i<100; i++) {
printf("%c",buffer[i]);
}
printf("\n");
for (int i=0; i<100; i++) {
printf("%c",buffer1[i]);
}
結果是
Eric
Eric?!^?{"Gl?(?!^?(?!^[email protected]?!^?0?P?!^?
我檢查陣列然後我發現有該陣列中一些奇怪的數字。但是爲什麼當我使用malloc創建數組時。奇怪的數字不存在?
「未初始化」並不意味着「設置爲一些衆所周知的默認值」。這意味着它可以包含任何東西(當然,在內存字節可以包含的限制內,至少......)。 – twalberg