使用operator new分配的数据结构是否会对C代码产生任何副作用

sam*_*ami 1 c c++

struct S1{...};

extern "C" struct S1 *f();

extern "C" void freeS1(struct S1 *ptr);
Run Code Online (Sandbox Code Playgroud)

a.cpp

extern "C" struct S1 *f() {
    struct S1 *ptr = new struct S1();
    ...
    return ptr;
};

extern "C" void freeS1(struct S1 *ptr) { 
    delete ptr;
};
Run Code Online (Sandbox Code Playgroud)

公元前

struct S1 *ptr = f();
.....
freeS1(ptr);
Run Code Online (Sandbox Code Playgroud)

Mat*_*lia 6

内存是内存,只要它正确对齐并且分配和释放函数正确匹配(并且结构定义相同),哪个分配器提供它并不重要.应该没问题.