malloc sizeof C中的typedef结构

mag*_*e f 0 c malloc struct typedef

我有一个struct指针,我想动态分配内存.

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 *'
->>>
Run Code Online (Sandbox Code Playgroud)

我得到了一个error: assigning to 'employee *' (aka 'employeeStructure *') from incompatible type 'void *'.

Per*_*son 8

C++会给出这个错误,所以你可能正在使用C++编译器.

将设置更改为C,或添加显式强制转换,如C++所要求的(或切换到使用new/delete).

在C中,向malloc的返回值添加显式强制转换被视为错误形式.这是几乎所有C代码与C++编译器不兼容的主要原因.最好的方法是考虑C和C++不同的语言并分别学习它们.

编辑:请看这里为什么它被认为是糟糕的形式.