相关疑难解决方法(0)

964
推荐指数
5
解决办法
11万
查看次数

C++中的POD类型是什么?

我有几次遇到这个术语POD型.这是什么意思?

c++ types c++-faq

919
推荐指数
8
解决办法
29万
查看次数

279
推荐指数
8
解决办法
19万
查看次数

我什么时候应该在C++中使用new关键字?

我一直在使用C++,我一直在想新的关键字.简单地说,我应该使用它吗?

1)使用关键字...

MyClass* myClass = new MyClass();
myClass->MyField = "Hello world!";
Run Code Online (Sandbox Code Playgroud)

2)没有新的关键字......

MyClass myClass;
myClass.MyField = "Hello world!";
Run Code Online (Sandbox Code Playgroud)

从实现的角度来看,它们看起来并没有什么不同(但我确定它们是......)但是,我的主要语言是C#,当然第一种方法就是我习惯的方法.

困难似乎是方法1更难用于std C++类.

我应该使用哪种方法?

更新1:

我最近使用new关键字作为内存(或免费存储)用于超出范围的大型数组(即从函数返回).在我使用堆栈之前,导致一半的元素在范围之外被破坏,切换到堆使用确保元素是完整的.好极了!

更新2:

我的一位朋友最近告诉我,使用new关键字有一个简单的规则; 每次打字new,输入delete.

Foobar *foobar = new Foobar();
delete foobar; // TODO: Move this to the right place.
Run Code Online (Sandbox Code Playgroud)

这有助于防止内存泄漏,因为您总是必须将删除放在某处(即,当您将其剪切并粘贴到析构函数或其他方式时).

c++ pointers reference keyword new-operator

261
推荐指数
6
解决办法
12万
查看次数

如何用C++中的new运算符初始化内存?

我刚刚开始进入C++,我想养成一些好习惯.如果我刚刚int使用new运算符分配了一个类型的数组,我怎么能将它们全部初始化为0而不用自己循环遍历它们?我应该用memset吗?有没有"C++"方法呢?

c++ memory-management initialization new-operator

163
推荐指数
6
解决办法
12万
查看次数

C++中"new"和"malloc"和"calloc"有什么区别?

"new"和"malloc"和"calloc"和其他家庭有什么区别?

(何时)除了"新"之外我还需要什么?

其中一个是否使用其他任何一个实现?

c++ heap malloc memory-management

51
推荐指数
5
解决办法
9万
查看次数

在C++中删除malloc的行为

int *p=(int * )malloc(sizeof(int));

delete p;
Run Code Online (Sandbox Code Playgroud)

当我们使用malloc分配内存时,我们应该使用free释放它,当我们在C++中使用new分配时,我们应该使用delete释放它.

但是如果我们使用malloc分配内存然后使用delete,那么应该会有一些错误.但是在上面的代码中,C++中没有错误或警告.

此外,如果我们使用new进行反向和分配并使用free进行释放,那么也没有错误或警告.

为什么会这样?

c++ malloc delete-operator

27
推荐指数
3
解决办法
2万
查看次数

C++内存分配机制性能比较(tcmalloc vs. jemalloc)

我有一个分配大量内存的应用程序,我正在考虑使用比malloc更好的内存分配机制.

我的主要选择是:jemalloc和tcmalloc.使用它们中的任何一个是否有任何好处?

http://locklessinc.com/benchmarks.shtml中 ,一些机制(包括作者的专有机制 - 无锁)之间有一个很好的比较,它提到了每个机制的优点和缺点.

鉴于这两种机制都是积极的并且不断改进.有没有人对这两者的相对表现有任何见解或经验?

c++ linux malloc tcmalloc

24
推荐指数
3
解决办法
2万
查看次数

我可以依赖malloc返回NULL吗?

我在Unix系统上看到,malloc即使内存实际上不可用,也可以返回非NULL指针,并且稍后尝试使用内存将触发错误.由于我无法通过检查NULL来捕获这样的错误,我想知道检查NULL是多么有用?

Herb Sutter说,处理C++内存错误是徒劳的,因为系统会在实际发生异常之前很长时间内进行分页痉挛.这也适用malloc吗?

c memory malloc error-handling

17
推荐指数
2
解决办法
5393
查看次数

什么时候在C中需要malloc?

我想所有都malloc(sizeof(structure)) 可以这样替换:

char[sizeof(structure)]
Run Code Online (Sandbox Code Playgroud)

那么什么时候malloc需要?

c malloc

13
推荐指数
3
解决办法
8182
查看次数