gpt4 book ai didi

c - (int*) calloc 和 just calloc 之间的区别?

转载 作者:行者123 更新时间:2023-11-30 19:43:45 28 4
gpt4 key购买 nike

有什么区别:

int *array;
array = (int*) calloc(5, sizeof(int));

int *array;
array = calloc(5, sizeof(int));

我不明白。两个样本都有效。在大学里,教授解释了为什么在 calloc 之前需要 (int*),但我不明白。

类(class)中的代码示例如下:

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;
}

希望有人能给我解释一下。谢谢。

最佳答案

区别在于,第一个会导致违反约束,而第二个则不会。 calloc 的返回类型是 void *,因此不需要强制转换它。

另请阅读:Do I cast the result of malloc?

关于c - (int*) calloc 和 just calloc 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29198378/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com