题
假设我有一个包含以下值的数组编号:
int numbers = [12, 511, 337, 254];
现在,我想将这些数字缩放到单个字节值中,然后将它们存储在char数组中
char numbersscaled;
for(i=0; i<4; i++) {
numbersscaled[i] = numbers[i]/2;
}
最后,我想将这些值写为二进制文件,如下所示:
filebin = fopen("results.bin", "wb");
if(file==NULL) {
printf("Error\n");
return 1;
}
fwrite(numbersscaled, sizeof(numbersscaled[0]),
numbersscaled/numbersscaled[0], filebin);
fclose(filebin);
不幸的是,当尝试编译此程序时,GCC不喜欢FWRITE命令:
error: invalid operands to binary / (have ‘char *’ and ‘int’)
有人知道我想念什么吗?谢谢!
解决方案
是的,你缺少 sizeof
.
sizeof(numbersscaled)/sizeof(numbersscaled[0])
请注意,您的问题中有很多错别字(缺少 []
, 等等),很难检测到真正的问题。请修复。
其他提示
数字规模应为炭的数组而不是char。
fwrite(numbersscaled, sizeof(numbersscaled[0]), 4, filebin);
有些不对劲,
numbersscaled/numbersscaled[0]
不是 char numberscaled[4]
?在您的问题中,您已将其宣布为字符。
你应该阅读 fwrite
曼页面。
不隶属于 StackOverflow