我有一点点长的C代码,有一个函数只能被调用一次。这包括一些变量,例如char array
,int
。代码是这样的:
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
呢?它是否有助于有效地使用资源,或者是否会出现一些严重的问题(如果是这种情况,可能会发生什么)?
答案 0 :(得分:9)
使用malloc
比隐式堆栈分配更少更有效。堆栈是一种非常有效的分配机制,因为分配和释放都归结为堆栈指针的简单更新,不会留下任何碎片。