【发布时间】:2015-05-12 16:30:57
【问题描述】:
我需要初始化我的结构数组,全部为零
我的结构:
typedef struct stud
{
char nome[60];
int num;
int nota;
} Student;
typedef Student* CLASS;
我有这个代码:
int main(){
CLASS cls;
cls = (CLASS) calloc(100,sizeof(Student));
if (cls==NULL) printf("Error allocating memory");
}
不应该 calloc 将所有内容从 cls 初始化为零吗?如果我打印 cls 或 cls[0] 我会得到垃圾值;
【问题讨论】:
-
calloc 确实用零填充内存。你是怎么打印出来的?
-
显示如何打印指针
cls? -
在你们都参考了我的打印方式之后,我发现问题出在这!非常感谢你。 @mtijanic,您能回答一下,以便我标记为正确答案吗?
-
在 C 中,calloc() 的返回值和函数族不应强制转换。
-
@user3629249,如果我不强制转换,从 calloc 返回的值是否会是 Student 结构类型的指针,指向分配的内存?