【发布时间】:2014-01-06 08:42:08
【问题描述】:
我试图动态创建一个指向文件的指针数组。要求用户输入一个整数来表示大小,我需要创建一个具有该大小的指针数组。
FILE** arrOfFiles = NULL;
printf("Enter the number of units\n");
scanf("%d", &numOfUnits);
arrOfFiles = (FILE**)malloc(sizeof(FILE*)*numOfUnits);
这个声明对我想做的事情有好处吗?我只是不想确定。 谢谢。
【问题讨论】:
-
尝试使用
-Wall和-Wextra选项进行编译。您在这条线上看到任何警告吗?如果是,请纠正它们。在这种情况下,如果您不确定自己是否以正确的方式做某事,您应该始终服从编译器。顺便说一句,不建议对malloc的返回值进行类型转换。 -
顺便说一下,不要把 malloc 的结果转换成 C plz ;)
-
除了无用的演员表,我看不出你的代码有什么问题。
-
使用 calloc(numOfUnits, sizeof(FILE*) ),这会自动将每个字节初始化为 0。