在函数内重新分配内存并在C中按引用传递
我知道这听起来很愚蠢,但是为什么我实现的这个功能不能正常工作?
我在终端中收到以下错误:
cerinta3.c: In function ‘void realocare_memorie(student**, int)’:
cerinta3.c:9:19: error: invalid conversion from ‘void*’ to ‘student*’ [-fpermissive]
9 | *vector = realloc(*vector, dimensiune * sizeof(student));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| void*
void realocare_memorie (student **vector, int dimensiune) {
*vector = realloc(*vector, dimensiune * sizeof(student));
}
回答
您通过 C++ 编译器编译了 C 代码(g++通过错误消息)。这是犯那个错误的签名错误。gcc改为调用。