我有一个要动态分配内存的指针。

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为什么它被认为是不好的形式。

09-27 08:06