문제
다음 값이 포함 된 배열 번호가 있다고 가정 해 봅시다.
int numbers = [12, 511, 337, 254];
이제 해당 숫자를 단일 바이트 값으로 확장하고 숯 어레이에 저장하고 싶습니다.
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])
질문에 많은 오타가 있습니다 (누락 []
, 등), 실제 문제를 감지하기가 어렵습니다. 수정 해주세요.
다른 팁
숫자는 숯이 아닌 숯불 배열이어야합니다.
fwrite(numbersscaled, sizeof(numbersscaled[0]), 4, filebin);
뭔가 옳지 않습니다.
numbersscaled/numbersscaled[0]
그렇지 않습니다 char numberscaled[4]
? 당신은 당신의 질문에서 그것을 숯으로 선언했습니다.
당신은 읽어야합니다 fwrite
Man Page 다시.
제휴하지 않습니다 StackOverflow