怎样动态创建二维数组并初始化?c++
答案:2 悬赏:20
解决时间 2021-12-29 04:48
- 提问者网友:辞取
- 2021-12-28 08:51
怎样动态创建二维数组并初始化?c++
最佳答案
- 二级知识专家网友:有你哪都是故乡
- 2021-12-28 09:56
我貌似没有明白a和t是什么关系?我假设你说的a和t是同一个东西
我尝试帮你解决:
void get_v(const int m,const int n,float **p)//这里传入了一个指向二维数组指针的指针(假设这个二维数组名为Base)
{
float** a=new float*[n];//为了得到a[m][n],先动态创建了一维数组a[n]
for(int i = 0; i<n; i++)
{
a[i]=new float[m];//这样初始话每一个数组
}
for(int i=0;i<m;i++) //这个时候就可以按照你的方式来了,初始化
for(int j=0;j<n;j++){
a[m][n]=*( (float*)p+n*i+j );//这里就不用转换了,直接可以使用,但有一点要注意,就是再释放a的时候要采取上面相反的措施,不仅仅是delete[] a就能搞定的。
p++;
}
...............
}
1
我尝试帮你解决:
void get_v(const int m,const int n,float **p)//这里传入了一个指向二维数组指针的指针(假设这个二维数组名为Base)
{
float** a=new float*[n];//为了得到a[m][n],先动态创建了一维数组a[n]
for(int i = 0; i<n; i++)
{
a[i]=new float[m];//这样初始话每一个数组
}
for(int i=0;i<m;i++) //这个时候就可以按照你的方式来了,初始化
for(int j=0;j<n;j++){
a[m][n]=*( (float*)p+n*i+j );//这里就不用转换了,直接可以使用,但有一点要注意,就是再释放a的时候要采取上面相反的措施,不仅仅是delete[] a就能搞定的。
p++;
}
...............
}
1
全部回答
- 1楼网友:行路难
- 2021-12-28 10:45
我貌似没有明白a和t是什么关系?我假设你说的a和t是同一个东西
我尝试帮你解决:
void get_v(const int m,const int n,float **p)//这里传入了一个指向二维数组指针的指针(假设这个二维数组名为Base)
{
float** a=new float*[n];//为了得到a[m][n],先动态创建了一维数组a[n]
for(int i = 0; i<n; i++)
{
a[i]=new float[m];//这样初始话每一个数组
}
for(int i=0;i<m;i++) //这个时候就可以按照你的方式来了,初始化
for(int j=0;j<n;j++){
a[m][n]=*( (float*)p+n*i+j );//这里就不用转换了,直接可以使用,但有一点要注意,就是再释放a的时候要采取上面相反的措施,不仅仅是delete[] a就能搞定的。
p++;
}
...............
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |