动态开辟二位数组
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
浙公网安备 33010602011771号