2013-06-27 46 views
3

我有一點點長的C代碼,並且有一個函數只會被調用一次。這包括一些變量,如char array,int。代碼是這樣的:一次性使用函數 - 我應該使用malloc還是不使用

void onetimefcn(){ 
    char example_array1[20]="hello..."; 
    //... 
    char example_array10[14]="hej..."; 
    int x=3,y=432,z=321,d=4439; 
    //some arithmatic operation 
    //some char array operation: strcpy, strcmp 
    // some for loops and if else conditions 
} 

我將在嵌入式linux設備上運行該代碼。我不知道是否應該使用malloc爲該功能的所有變量,然後free他們?是否有助於有效利用資源或者是否會產生一些嚴重問題(如果是這種情況,會發生什麼情況)?

+3

他們是否會造成問題?也許某種不成熟的優化正在進行? – 11684

+0

可用的設備內存大小是多少?幾個kB或更少? –

+0

該設備具有250MHz的CPU和64MB DDR-RAM – sven

回答

9

使用malloc會比隱式的堆棧分配高效。該堆棧是一種非常有效的分配機制,因爲分配和釋放都歸結爲堆棧指針的簡單更新,而不會留下碎片。

相關問題