if ((fp = fopen( "a.bin", "r")) == NULL ) 改为 if ((fp = fopen( "a.bin", "rb")) == NULL )
效果是一样的 引用 10 楼 turingo 的回复:这一段, for(i=0;i<length;i++) { sprintf(&tmparr[i],"%c",*(unsigned char *)(ptr+i)); } 直接换成memcpy(tmparr, ptr, length); 引用 9 楼 leehh 的回复:类型看起来也……
这一段, for(i=0;i<length;i++) { sprintf(&tmparr[i],"%c",*(unsigned char *)(ptr+i)); } 直接换成memcpy(tmparr, ptr, length); 引用 9 楼 leehh 的回复:类型看起来也找不出是哪的问题,也没有溢出,不知道是哪不对。
类型看起来也找不出是哪的问题,也没有溢出,不知道是哪不对。
多谢上面两位兄弟的指点,但现在还有一点问题,为何写入文件的字节数只能到0xC000呢? 我测了一个128KB的内存数据,写到0xc000后面就全不对了。 malloc()函数申请的内存空间有问题么?
70,020
社区成员
243,263
社区内容
加载中
试试用AI创作助手写篇文章吧