有什么区别:
int *array;
array = (int*) calloc(5, sizeof(int));
和
int *array;
array = calloc(5, sizeof(int));
我不明白。 两个样本都有效。 在大学里,教授解释了为什么你需要在calloc之前使用(int *),但我没有得到它。
在课程中有一个像这样的代码示例:
struct data{
int number;
char *name;
};
typedef struct data student;
int main(){
student **list;
list = (student*) calloc(10, sizeof(student*));
//Create structures dynamic in list
....
return 0;
}
我希望有人可以向我解释。 谢谢。
答案 0 :(得分:0)
不同之处在于,首先导致约束违规,而第二个则不然。 calloc
的返回类型为void *
,因此无需强制转换。