动态开辟二位数组

 

int *arr=(int *)malloc(sizeof(int)*N);         //开辟的是一位数组;

//开辟二维数组//

 

//创建动态二维数组;

#include<malloc.h>   //void * _alloca(size_t size);

#include<iostream.h>

#include<new.h>

#include<stdlib.h>

#if 0

int main()

{

int m;

int n;

cout<<"请输入两个整数m, n";

cin>>m>>n;

    cout<<endl;

 

int size=m*n;

cout<<"用户请输入整数的个数为:"<<size<<endl;

int **ar;    //指针数组;

ar=new int *[m];   //建立m个指针,存储m行;数组指针;

int i,j,k;

for(i=0; i<m; i++)

if((ar[i]=new int[n])==NULL)

exit(0);

for(j=0; j<m; j++)

{

for(k=0; k<n; k++)

cin>>ar[j][k];

cout<<endl;

}

for(i=0; i<m; i++)

{

for(j=0; j<n; j++)

cout<<ar[i][j]<<" ";

cout<<endl;

}

for(i=0; i<m; i++)

delete[]ar[i];

delete []ar;         //释放m个指针;

return 0;

}

#endif

 

//动态开辟二维数组;

 

应该用[]delete释放空间

 

//开辟一维数组,打印时按照二维打印(二维数组在内存中存放也按照一维数组存放)

#if 0

//#define size m*n

#include<malloc.h>

#include<stdio.h>

int main()

{

int m; 

int n;

cout<<"请输入两个整数m,n:";

cin>>m >>n;

cout<<endl;

int size=m*n;

cout<<"用户请输入整数的个数为:"<<size<<endl;

int i;

 

int *p=(int *)malloc(sizeof(int)*size);

int value;

for(i=0; i<m*n; i++)

{

cin>>value;

p[i]=value;

}

 

for(i=0; i<size; i++)

{

if((i %m) == 0)

{

// cout<<endl;

printf("\n");   

}

//cout<<*(p+i)<<"\t";

printf("%d\t",*(p+i));  //输出的要一致才会使得printf("\n")起作用;

}

return 0;

}

#endif

posted on 2015-07-27 21:29  ELLIE_HD  阅读(249)  评论(0)    收藏  举报