小编Eus*_*ono的帖子

内存泄漏与std :: string

以下代码:

#include <string>

void *ptr = nullptr;
std::string *p = new std::string();
*p = "1";
ptr = p;
delete ptr;
Run Code Online (Sandbox Code Playgroud)

似乎使用以下输出使内存泄漏:

21:检测到内存泄漏!

21:转储对象 - >

21:{706}正常块,位于0x00723860,长度为8个字节.

21:数据:<q> C8 04 71 00 00 00 00 00

21:对象转储完成.

这很奇怪,因为下面的代码显示没有错误(也适用于double,bool):

void *ptr = nullptr;
int *p = new int();
*p = 1;
ptr = p;
delete ptr;
Run Code Online (Sandbox Code Playgroud)

我知道我做错了什么?(我需要使用"void*"指针,因为它可能会保留不同类型的对象).非常感谢那些可以帮助我的人!:)

c++ string memory-leaks

-4
推荐指数
1
解决办法
951
查看次数

标签 统计

c++ ×1

memory-leaks ×1

string ×1