【发布时间】:2013-04-16 02:41:42
【问题描述】:
内存管理:作用域和局部指针变量
问。在内存管理方面,以下代码中的错误是什么?
char* secret_message()
{
char message_buffer[100];
char* text = "Hey man!";
int n = 0;
while (text[n] != '\0')
n++;
for (int i = 0; i <= n ; i++)
message_buffer[i] = text[i];
return message_buffer;
}
回答。 我认为 message_buffer 是局部变量 函数结束后自动回收。 此函数返回对无效内存位置的引用 , 因为 message_buffer 在 return 语句后立即消失。
对吗?
请告诉我。 谢谢,
【问题讨论】:
-
是的,和你想象的一样。
标签: c++ memory-management memory-leaks reference local-variables