c版:
#include <stdio.h> #include <stdlib.h> #define row 4 #define col 8 int main() { int **p; int i,j; //p[4][8] //开始分配4行8列的二维数据 p = malloc(sizeof(int *)*row); for(i=0;i<row;i++){ p[i]= malloc(sizeof(int)*col); } //初始化 for(i=0; i<row; i++){ for(j=0; j<col; j++){ p[i][j] = j*i; } } //打印数据 for(i=0; i<row; i++){ for(j=0; j<col; j++) { if(j==0) printf("\n"); printf("%d \t",p[i][j]); } } //开始释放申请的堆 for(i=0; i<row; i++){ free(p[i]); } free(p); return 0; }
c++版:
#include <iostream> using namespace std; int main() { int **p; int i,j; //p[4][8] //开始分配4行8列的二维数据 p = new int *[4]; for(i=0;i<4;i++){ p[i]=new int [8]; } for(i=0; i<4; i++){ for(j=0; j<8; j++){ p[i][j] = j*i; } } //打印数据 for(i=0; i<4; i++){ for(j=0; j<8; j++) { if(j==0) cout<<endl; cout<<p[i][j]<<"\t"; } } //开始释放申请的堆 for(i=0; i<4; i++){ delete [] p[i]; } delete [] p; return 0; }