Tag: object lifetime

在C函数中创建的对象的存在

已经建立(见下文)创建对象需要placement new int* p = (int*)malloc(sizeof(int)); *p = 42; // illegal, there isn’t an int 然而,这是在C中创建对象的一种非常标准的方式。 问题是,如果在C中创建int并返回到C ++,那么它是否存在? 换句话说,以下是否合法? 假设int对于C和C ++是相同的。 foo.h中 #ifdef __cplusplus extern “C” { #endif int* foo(void); #ifdef __cplusplus } #endif foo.c的 #include “foo.h” #include int* foo(void) { return malloc(sizeof(int)); } main.cpp中 #include “foo.h” #include int main() { int* p = foo(); […]