分配二级指针空间例子

#include<stdio.h>
#include<stdlib.h>
int main()
{
 int **p;   //定义一个二级指针
 int n=3,m=4;  //4行3列
 p=(int **)malloc(4*sizeof(int *)); //分配一块空间,大小是4*sizeof(int *),保存四个指针,每个指针指向每一行的位置
 int i=0;
 for(i=0;i<m;i++)
 {
  *(p+i)=(int *)malloc(3*sizeof(int)); //分配4次空间,每次分配3*sizeof(int)大小,里面保存3个值
 }
 int j;
 for(i=0;i<4;i++)
 {
  for(j=0;j<3;j++)
  {
   *(*(p+i)+j)=(i+1)*(j+1);   //给12个空间赋值
   printf("%d\t",*(*(p+i)+j));
  }
  printf("\n");
 }
 for(j=0;j<m;j++)
  free(*(p+j));    //释放空间。
 free(p);
 return 0;
}

posted @ 2011-09-19 08:40  auleaf  阅读(524)  评论(0编辑  收藏  举报