【发布时间】:2015-05-06 09:25:47
【问题描述】:
如果我必须在 c 中使用 128/64 字节字符数组。哪一个是更有效的 char 数组的静态分配或动态内存分配,为什么?如果我必须为 1kb 或母马分配内存,这是否也有效。
我想知道 1 和 2 哪个效率更高。
1.char数组[128]或
2. 字符 *abc = malloc(128);
【问题讨论】:
-
定义“高效”是什么意思。
-
@Dayalrai 这根本不是“高效”的意思。
-
高效意味着我的代码应该运行得更快。
-
在您的代码大部分时间都花在
malloc()中之前,我建议您不要担心它的效率。堆和堆栈分配有两个非常不同的目的,几乎在所有情况下,目的都决定了您使用哪种分配方案。例如,您不能从函数返回堆栈分配的数组,因此这是一个指定malloc()的目的。除非您一遍又一遍地分配相同的内存,否则分配永远不是速度问题。 -
问题是“静态分配”,但是 1) 和 2) 都不是静态分配。
标签: c sockets memory heap-memory