小编alp*_*lus的帖子

下面的代码真的可以在C/C++中释放内存吗?

这是代码:

int main()
{   
   char str[] = {'a','b','c',' ','d','e',' ',' ','f',' ',' ',' ','g','h','i',' ',' ',' ',' ','j','k'};
   cout << "Len = " << strlen(str) << endl;

   char* cstr = new char[strlen(str)];
   strcpy(cstr, str); 

   cstr[5] = '\0';

   cout << "Len= " << strlen(cstr) << endl;

   return 0;
}

//---------------
Result console:
Len = 21                                                                                                                                                                        
Len= 5
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,Len的cstr发生了变化.这意味着cstr的剩余内存区域是免费的.这样对吗?

c c++

4
推荐指数
3
解决办法
273
查看次数

标签 统计

c ×1

c++ ×1