我有一段稍长的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
?它会有助于有效地使用资源吗?还是会出现一些严重的问题(如果是这样,可能会发生什么)?
使用malloc
将比隐式堆栈分配效率低。堆栈是一种非常有效的分配机制,因为分配和释放都可以归结为堆栈指针的简单更新,不会留下碎片。