我已经动态分配了一个二维数组,使用双指针访问,如下所示:
float **heat;
heat = (float **)malloc(sizeof(float *)*tI); // tI == 50
int n;
for(n = 0; n < tI; n++){ // tI == 50
heat[n] = (float *)malloc(sizeof(float)*sections); // sections == 30
}
在用值填充其所有元素后(我确定它们都正确填充),我试图将其输出到如下文件:
fwrite(heat, sizeof(heat[tI-1][sections-1]), ((50*30)-1), ofp);
我也刚刚尝试过:
fwrite(heat, sizeof(float), ((50*30)-1), ofp);
我想输出这个二维数组吗?
我知道我的文件 I/O 正在工作(文件指针 ofp 不为空,并且以十进制写入文件有效),但是当我尝试使用 fwrite 写入时,非常奇怪的字符和消息被输出到我的输出文件在二进制。
我知道这heat[tI-1][sections-1]
也确实在二维数组的范围内。我只是在使用它,因为我知道这是我持有的最大元素。
我的输出是很多 NULL,有时是奇怪的系统路径。