문제

다음 값이 포함 된 배열 번호가 있다고 가정 해 봅시다.

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 다시.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top