C\C++动态申请内存用于存放二维数组

 


//动态申请3*4二维数组空间
//In C
int main()
{
 //1.转换为int**
 int** p = (int**)malloc(3*sizeof(int*));     //p为一个行指针**,指向一个一维数组的地址
 for(int i = 0; i < 3; i++)
 {
  p[i] = (int*)malloc(4*sizeof(int));    //p[i]为一个列指针
 }
 int num = 0;
 for(int i = 0; i < 3; i++)
  for(int j = 0; j < 4; j++)
  {
   *(*(p + i) + j) = num++;
  }
 for(int i = 0; i < 3; i++)
 {
  for(int j = 0; j < 4; j++)
  {
   cout << *(*(p + i) + j) << " ";
  }
  cout << endl;
 }
 for(int i = 0; i < 3; i++)
 {
  free(p[i]);
 }
 //2.转换为int*
 int* p = (int*)malloc(3 * 4 * sizeof(int));
 for(int i = 0; i < 12; i++)
 {
  *(p + i) = i;
 }
 for(int i = 0; i < 12; i++)
 {
  cout << *(p + i) << " ";
  if((i + 1)%4 == 0)
  {
   cout << endl;
  }
 }*/
 free(p);
 cout << "All Done!" << endl;
 getchar();
 return 1;
}

//In C++
int main()
{
 int (*p)[4] = new int[3][4];
 int num = 0;
 for(int i = 0; i < 3; i++)
  for(int j = 0; j < 4; j++)
  {
   *(*(p + i) + j) = num++;
  }
 for(int i = 0; i < 3; i++)
 {
  for(int j = 0; j < 4; j++)
  {
   cout << *(*(p + i) + j) << " ";
  }
  cout << endl;
 }
 delete[] p;
 cout << "All Done!" << endl;
 getchar();
 return 1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值