二维数组的形参a[][q],书上说必须有第二个参数,但我这里q是需要动态变化的,怎么办?

aka2006 2003-10-16 08:43:28
二维数组的形参a[][q],书上说必须有第二个参数,但我这里q是需要动态变化的,怎么办?

int q = 6;

void av(double a[][q],double* b,double* aabb);

我现在要动态分配q的值,q就是变量了,编译就说q必须为常数?
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aka2006 2003-11-24
  • 打赏
  • 举报
回复
回复人: mmlymlymly(mly) ( ) 信誉:100 2003-10-16 22:06:43 得分:1



double **a;
a=new double*[M];
for(int i=0;i<N;i++){
a[i]=new double[N];
}
void av(double **a,double* b,double* aabb);
贴了n次了:)

循环变量里面的N有误,好好想一想原因!
playboyxp 2003-10-19
  • 打赏
  • 举报
回复
动态分配二维数组和释放

#include <iostream.h>
void main()
{
int n,**p;
cin>>n;
p=new int*[n];
for(int i=0;i<n;i++)
p[i]=new int[n];
for(i=0;i<n;i++)
delete [] p[i];
delete [] p;
}
LinuxPanther 2003-10-16
  • 打赏
  • 举报
回复
你可以动态分配你的二维数组!
如:
template<class T>
void Make2DArray(T**&x,const int rows,const int cols)
{
x=new T*[rows];
for(int i=0;i<rows;i++)
x[i]=new T[cols];
}
现写的可以不太对,不过改改就行了!
思想大体可以看错把!
darcymei 2003-10-16
  • 打赏
  • 举报
回复
double **a;
a=new double*[M];
for(int i=0;i<N;i++){
a[i]=new double[N];
}
void av(double **a,double* b,double* aabb);
贴了n次了:)
dama2003 2003-10-16
  • 打赏
  • 举报
回复
不太懂,高手能说的清楚点吗?我也学学
freewing 2003-10-16
  • 打赏
  • 举报
回复
还是把书好好看看吧
buaaaladdin 2003-10-16
  • 打赏
  • 举报
回复
呵呵,必须指定第二维长度是对静态二位数组讲的。

动态数组直接把二级指针传进去就可以了,用另外的参数指定各维的长度。

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧