小编vov*_*ova的帖子

C++ char array[] 内存泄漏

我创建了 char arr[] 并分配给它字符串文字

char arr[] = "some string";                  // arr occupies 12 chars in memory
std::cout << std::strlen(arr)  << std::endl; // lenght is 11 chars + 1 null-terminator
                                             //arr[11] is '\0'
Run Code Online (Sandbox Code Playgroud)

接下来我将空终止符放入 6 个元素

arr[5] = '\0';
std::cout << std::strlen(arr) << std::endl; // lenght is 5 chars  + 1 null-terminator
Run Code Online (Sandbox Code Playgroud)
  1. 是内存泄漏吗?
  2. 编译器如何知道它必须在第一个 '\0' 之后释放内存?(什么时候会删除变量arr)
  3. 是否可以更改此 arr 变量的长度并通知编译器在删除变量时应释放多少?

c++ memory

-2
推荐指数
2
解决办法
389
查看次数

标签 统计

c++ ×1

memory ×1