保存动态二维数组到文件的内容不对
需要创建一个4*10的动态二维数组并将其中的数据保存到文件,按计算文件应该是40字节大小,但保存后有43个字节(其中的0D是多余的),有3个字节不知道是怎么来的,请问如何解决这个问题
#include "stdafx.h"#include <fstream>using namespace std;int main(int argc, char* argv[]){ //动态二维数组 char (*p)[4]; int r=0, c=0; //分配二维数组内存 p = new char[10][4]; //赋值 for (r=0; r<10; r++) { for (c=0; c<4; c++) { p[r][c] = r + c; // 此处填充不同的值在保存时会有不同的结果,如 p[r][c] = r + c * 20; } } //显示 for (r=0; r<10; r++) { printf("%08X ~ %08X ", &p[r][0], &p[r][3]); //地址范围 for (c=0; c<4; c++) { printf("p[%d][%d]: %02X ", r, c, p[r][c]); } printf("\n"); } //保存到文件 ofstream f("1.txt"); if (f) { f.seekp(0, ios::beg); f.write((char*)p[0], 10 * 4 * sizeof(char)); f.close(); printf("File Saved to 1.txt\n"); } else { printf("Create 1.txt Faild!\n"); } //释放二维数组内存 delete[] p; return 0;}