问题
动态声明一个类似int a[10][5]的二维数组。
解决方法
1、声明
int **a;
2、申请
//二维数组初始化
a = new int * [10];
for (i = 0; i < 10; i ++)
{
a[i] = new int [5];
}
3、申请释放
//释放
for (i = 0; i < 10; i ++)
{
delete [] a[i];
}
delete [] a;
4、代码
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int **a;
int i, j;
FILE *fp;
errno_t err;
//动态声明一个a[10][5]整形二维数组
a = new int * [10];
for (i = 0; i < 10; i ++)
{
a[i] = new int [5];
}
for (i = 0; i < 10; i ++)
{
for (j = 0; j < 5; j ++)
{
a[i][j] = 10 * i + j;
}
}
//在文件中记录
err = fopen_s(&fp, "D:\\Work\\Debug\\2.dat", "wb");
if( err == 0 )
{
printf( "The file was opened!\n" );
}
else
{
printf( "The file was not opened!\n" );
}
for (i = 0; i < 10; i ++)
{
fwrite(a[i], 5 * sizeof(int), 1, fp);
}
fclose(fp);
//释放
for (i = 0; i < 10; i ++)
{
delete [] a[i];
}
delete [] a;
system("pause");
}
5、调试结果
代码下载:https://download.csdn.net/download/sunriver2000/12150076