【发布时间】:2012-05-26 23:45:15
【问题描述】:
const char* test(bool i)
{
const char t[] = "aa\n";
const char* p = "bbb\n";
if(i)
return p;
return t;
}
int main(array<System::String ^> ^args)
{
printf(test(true));
printf(test(false));
return 0;
}
返回某种东西:
bbb
%^&$^$%
很明显 test(false) 返回一个指向局部变量的指针。问题是 p 也是局部变量。为什么函数返回后没有清理“bbb\n”的内存。我认为 const char[] 的解释方式与 const char* 相同,但事实并非如此。
【问题讨论】:
标签: arrays c++-cli char constants