1
的malloc我已用malloc使用以下行的代碼創建的陣列創建的整數數組的大小這返回2,但不是12(我知道sizeof(數組[0]更一般)。 混淆(對我來說),當我創建一個數組時使用正確獲得與用c
int array[12]
的上面一行代碼返回正確的尺寸:12
此外,我能夠填充12點的整數中的int *陣列未經分段錯誤,我不理解如果尺寸原來是2.
有人可以告訴我我在做什麼錯誤/ 如何獲得在c中使用malloc初始化的數組大小?
對不起,如果這是基本的,我環顧四周,找不到答案。
謝謝你的時間。
[不投的malloc(朋友)的結果] (http://stackoverflow.com/q/605845)。 – Deduplicator 2014-10-30 15:54:35
第一個'array'不是一個數組,而是一個指向'int'類型元素的指針。第二個是! – Deduplicator 2014-10-30 15:55:11
這裏有更多的可能是重複的地方,但一般的答案是'sizeof(array)'在第一種情況下給你指針的大小,*不是*數組的大小;沒有辦法從一個指針來確定數組的大小。 – 2014-10-30 15:56:10