相关疑难解决方法(0)

Malloc vs new - 不同的填充

我正在审查其他人使用MPI进行高性能计算(10 ^ 5 - 10 ^ 6核心)的项目的C++代码.该代码旨在允许不同体系结构上(可能)不同机器之间的通信.他写了一条评论,说的是:

我们通常使用newdelete,但在这里我正在使用mallocfree.这是必要的,因为一些编译器在new使用时将以不同方式填充数据,从而导致在不同平台之间传输数据时出错.这不会发生malloc.

这与我从标准newvs malloc问题中所知道的任何内容都不符合.

new/delete和malloc/free有什么区别?提示编译器可以不同地计算对象的大小(但那么为什么它与使用不同sizeof?).

malloc&placement new vs. new是一个相当受欢迎的问题,但只讨论new使用构造函数而malloc不是,这与此无关.

malloc如何理解对齐?他说保证记忆与任何一个new或者malloc我之前想过的一致.

我的猜测是,他在过去的某个时间误诊了自己的错误并推断出newmalloc提供不同数量的填充,我认为这可能不是真的.但我无法通过谷歌或以前的任何问题找到答案.

帮助我,StackOverflow,你是我唯一的希望!

c++ malloc padding new-operator

108
推荐指数
2
解决办法
6182
查看次数

标签 统计

c++ ×1

malloc ×1

new-operator ×1

padding ×1