使用运营商New分配的数据结构是否有任何副作用
Are there any side effects for C code using data structure allocated using operator new
a.h
struct S1{...};
extern "C" struct S1 *f();
extern "C" void freeS1(struct S1 *ptr);
A.CPP
extern "C" struct S1 *f() {
struct S1 *ptr = new struct S1();
...
return ptr;
};
extern "C" void freeS1(struct S1 *ptr) {
delete ptr;
};
B.C
struct S1 *ptr = f();
.....
freeS1(ptr);
内存是内存,只要它正确对齐并且分配和交易函数是正确匹配的(结构定义是相同的(,只要它正确对齐,分配和交易函数就无关紧要。应该没有问题。
相关文章:
- 是否有任何C++功能可以对地图进行排序?
- 在C++行尾写一个分号或多个分号是否会改变任何内容
- C++类型特征,以查看是否可以<uint32_t>对类型"K"的任何变量调用"static_cast(k)"
- 是否有任何建议来统一函数类型限定符并简化可恶的函数类型?
- GoogleMock是否仍然打算与任何测试框架一起使用?
- C++中是否有任何函数等同于python中字典的get函数?
- 用于检查值是否为其任何参数的帮助程序函数
- 在实践中,在运行时为零的乘法中是否有任何"lazy"评估
- MPI:检查是否有任何进程已终止
- 如何检测除整数以外的任何内容是否传递给我的类构造函数?
- C++ 移动语义是否在任何情况下都能节省资源?
- 在调用其析构函数之前,是否有任何实际理由检查某些东西是否可破坏?
- c++ 编译器是否保护常量内存地址免受任何更改?
- 对于堆上的页面对齐内存分配是否有任何优化或不同的 API?
- 使用 std::addressof(std::cout) 而不是 &std::cout 是否有任何风险?
- 是否有任何区域设置会影响宽字符编码?
- 是否有任何模式等效于虚拟模板功能?
- 我的代码中是否有任何类型的错误,因为它没有给出正确的输出
- 使用静态成员函数而不是普通函数是否有任何开销?
- 是否有任何 C 标准函数将值"1"传递给所有 (%s)