【发布时间】:2013-06-25 01:00:31
【问题描述】:
我的 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 他们?是否有助于有效利用资源,还是会引发一些严重的问题(如果是,会发生什么情况)?
【问题讨论】:
-
它们会引起问题吗?也许正在进行某种过早的优化?
-
可用设备内存大小是多少?几 kB 或更少?
-
设备有 250MHz CPU 和 64MB DDR-RAM
-
但是他们的范围没有超出那个功能,对吗?当函数结束时,它们会被删除吗?
-
该函数会自行删除。但是,我还有一些变量将在 main() 上使用一次。将 malloc 用于将在 main() 中使用一次的变量是否有意义?
标签: c linux memory-management malloc