我在 C 中执行以下操作:
void *initialize()
{
my_type *ret = malloc(sizeof(my_type));
return (void*)ret;
}
void test()
{
my_type* ret = (mytype*)initialize();
my_type x = *ret;
}
它在取消引用时崩溃:
Received signal 11 (Segmentation fault: 11)
指针不为空:我尝试打印指针,并得到一个值。
我还尝试在测试函数中创建一个新的 my_type ,如下所示:
my_type* new = malloc(sizeof(my_type));
当我打印 new 和 ret 的整数表示时,它们是彼此非常接近的整数。所以这些东西在内存中应该就在附近。