0
大家好,我是C編程的新手,這是我的第一個問題,我嘗試用C代碼讀取二進制文件,但解決方法是在緩衝區刪除位置更改爲註釋行時更改。爲什麼發生這種情況?C二進制文件讀取緩衝區Decleration位置差
int main() {
char *ch;
//unsigned char *buffer;
char buffer[129];
//char *buffer;
int counter=0;
FILE *filee;
int x;
int i=0;
filee = fopen("testfile.mtx" , "rb");
int counter2 = 0;
while(1) {
ch = fgetc(filee);
if (ch == EOF)
break;
else
counter ++ ;
}
printf("COUNTER : %d\n",counter);
//buffer = malloc ((sizeof(char) * counter) +1) ;
//unsigned char *buffer = malloc(sizeof(char) * (counter+1));
//char buffer[counter];
fread(buffer,sizeof(buffer),1,filee);
if(filee== NULL) {
printf("Fİle cannot opened\n");
}
for(i = 0; i<counter; i++){
printf("%u ", buffer[i]);
counter2++;
if(counter2 % 8 == 0) {
printf("\n");
}
}
fclose(filee);
return 0;
}
'char buffer [129];'具有129字節的大小,其中char * buffer的大小取決於系統的位寬,其大小爲4或8。 – alk