int array[] = {2, 3, 4, 6};
int array[6] = {2, 3, 4, 6};
int array[MAX_SIZE] = {2, 3, 4, 6};
在第一個語句中,我沒有提到數組可以容納的元素數量。第二個陣列可以容納6個元素,第三個陣列也可以容納6個元素。當我用sizeof(array)
來確定大小。第一個陣列的大小是16.第二個和第三個分別有24個。不使用MAX_ELEMENTS對數組進行初始化會更好嗎?
爲什麼我不喜歡第一個?正如它使用內存一樣,它也是它所具有的元素之一。而在第二和第三的情況下,我首先告訴沒有。它可以容納的元素和大小變成24.另外,我不能使用那個內存來做其他工作。
使用malloc(6 * sizeof(int))
進行初始化的另一種方式,請致電free(array)
。這將允許我使用未使用的內存。但爲什麼我應該這樣做,因爲array[]
使用內存作爲它的元素。 malloc
也做同樣的事情,但它很容易編寫和記憶array[]
。
那麼,你想要一個長度爲4或長度爲6的數組嗎? – juanchopanza
問題並不清楚。 – ouah
爲什麼array []不應該喜歡? –