我有一个要动态分配内存的指针。
struct employeeStructure {
char name[100];
char address[255];
int age;
char ssnum[100];
};
typedef struct employeeStructure employee;
/* and in my main function */
employee *employeeRecord;
employeeRecord = malloc(sizeof(employee));
->>>
->>> error: assigning to 'employee *' (aka 'employeeStructure *') from incompatible type 'void *'
->>>
我得到了一个
struct
。 最佳答案
C++会给出这个错误,所以你可能使用C++编译器。
将设置更改为C,或添加显式CAST,如C++所需(或切换到使用Neal/Delphi)。
在C中,向malloc的返回值添加显式强制转换被认为是错误的形式。这是几乎所有C代码与C++编译器不兼容的主要原因。最好的办法是考虑C和C++不同的语言,并分别学习它们。
编辑:See here为什么它被认为是不好的形式。