int x = 750;
int i = 0;
while (pow(2, i) < x) {
i++;
}
printf("i is currently %d\n", i);
int array[i];
while (i > 0){
i--;
printf("The value of array %d is %d\n", i, array[i]);
}
當我這樣做時,它創建了一些非常瘋狂的值。我聽說過試圖使用malloc或memset,但值沒有改變。我想要做的就是將所有這些設置爲零,以便我可以將它用作計數器。謝謝!將可變長度數組初始化爲零
什麼,*完全*,做了這個'memset'你試過*看起來像*當值「沒有改變」?郵寄*請*。我的水晶球告訴我你調用了'memset(array,0,i)',你應該調用memset(array,0,i * sizeof(* array));'。 – WhozCraig
嘿,謝謝Craig,那是真的,我甚至沒有意識到。我將需要重做。好吧,我也試過'memset(array,1,i * sizeof(* array));'它顯示所有的值爲16843009 – Farion
你想讓它們爲1還是0?請記住,'memset'設置*八位字節*;不*實體*。將每個*字節*設置爲4個字節整數序列中的每個* 1將給出每個「int」*的0x01010101 *,將其轉換爲小數爲16843009.如果您希望它們全部初始爲1,則需要通過硬循環。 'for(int j = 0; j WhozCraig