函数打包版
#include <malloc.h>
#include <stdio.h>
#define ROW 4
#define LINE 5
int ** getArray(int row, int line)
{
int **p = NULL;
int i =0;
p = (int**)malloc(sizeof(int*)*row);
for(; i<row; i++)
p[i] = (int*)malloc(sizeof(int)*line);
return p;
}
void freeArray(int **p, int row)
{
int i,j;
for(i=0; i<row; i++)
free(p[i]);
free(p);
}
int main()
{
int **p2Array = getArray(ROW,LINE);
int i,j;
for(i=0; i<ROW; i++)
{
for(j=0; j<LINE; j++)
{
p2Array[i][j] = i+j;
}
}
for(i=0; i<ROW; i++)
{
for(j=0; j<LINE; j++)
{
printf("%d ",p2Array[i][j]);
}
putchar(10);
}
freeArray(p2Array,ROW);
return 0;
}
-------------------------------------------------------------------------------------------------------------------------------
#include <malloc.h>
#include <stdio.h>
#define ROW 4
#define LINE 5
int * getArray(int row, int line)
{
int *p = malloc(sizeof(int)*row*line);
return p;
}
void freeArray(int *p)
{
free(p);
}
int main()
{
int (*p2Array)[LINE] = (int(*)[LINE]) getArray(ROW,LINE);
int i,j;
for(i=0; i<ROW; i++)
{
for(j=0; j<LINE; j++)
{
p2Array[i][j] = i+j;
}
}
for(i=0; i<ROW; i++)
{
for(j=0; j<LINE; j++)
{
printf("%d ",p2Array[i][j]);
}
putchar(10);
}
freeArray(p2Array);
return 0;
}
其本格式
#include <malloc.h>
#include <stdio.h>
int main()
{
int (*a)[2] = malloc(sizeof(int)*3*2);
a[0][0] =1;
a[0][1] =2;
a[1][0] =3;
a[1][1] = 4;
a[2][0] =5;
a[2][1] = 6;
printf("%d\t%d\t%d\t%d\t%d\t%d\n",a[0][0],a[0][1],a[1][0],a[1][1],a[2][0],a[2][1]);
free(a);
system("pause");
}
或者:
#include <malloc.h>
#include <stdio.h>
int main()
{
int **a = malloc(sizeof(int)*3);
a[0]= malloc(sizeof(int)*2);
a[1]= malloc(sizeof(int)*2);
a[2]= malloc(sizeof(int)*2);
a[0][0] =1;
a[0][1] =2;
a[1][0] =3;
a[1][1] = 4;
a[2][0] =5;
a[2][1] = 6;
printf("%d\t%d\t%d\t%d\t%d\t%d\n",a[0][0],a[0][1],a[1][0],a[1][1],a[2][0],a[2][1]);
free(a[0]);
free(a[1]);
free(a[2]);
free(a);
system("pause");
}