【发布时间】:2010-01-10 20:14:19
【问题描述】:
例如,当我在 while 循环之外分配内存时,可以在其中释放它吗? 这两个代码是等价的吗?
int* memory = NULL;
memory = malloc(sizeof(int));
if (memory != NULL)
{
memory=10;
free(memory);
}
int* memory = NULL;
memory = malloc(sizeof(int));
if (memory != NULL)
{
memory=10;
}
free(memory);
【问题讨论】:
-
你的意思是“if 语句”而不是“while 循环”
-
确保为
malloc和free编写包装函数。这样,如果您想更改底层实现(例如,使用更快的内存分配函数),只需更改两行(malloc和free的行)。它可以让你避免重复代码。