我用一个二级指针代替二维数组
在调用程序里我用
coefficientA =(float **)new float[3000][20] ;
被调用程序为:
void CWaveView::LinearPredict(short *frameBox, float ** coefficientA, int num)
{
....
for(i=1;i<=ORDER;i++)
coefficientA[num][i]=coef[i];
.......
}
编译能通过,但是调试时,它在coefficientA[num][i]=coef[i处提示我Access Violation
什么原因啊?请指点!
在调用程序里我用
coefficientA =(float **)new float[3000][20] ;
被调用程序为:
void CWaveView::LinearPredict(short *frameBox, float ** coefficientA, int num)
{
....
for(i=1;i<=ORDER;i++)
coefficientA[num][i]=coef[i];
.......
}
编译能通过,但是调试时,它在coefficientA[num][i]=coef[i处提示我Access Violation
什么原因啊?请指点!
float** coefficientA =new float*[3000];
for(int i=0;i<3000;i++)
coefficientA [i]=new float[20];然后可以用coefficientA[num][i]来访问了。删除的时候这样:
for(int i=0;i<3000;i++)
delete []coefficientA[i];
delete []coefficientA;
coef[i]是float,怎么能够赋值
for(i=1;i<=ORDER;i++)
coefficientA[num][i]=coef[i];
这里ORDER可能超过20了
coef[i]是float,怎么能够赋值老大,coefficientA[num][i]怎么会是float* ?
我敢肯定
ORDER 定义为20
会palship:
但是赋值时系统没有提示出错啊
我的意思是二维数组和二级指针的通用方法是个什么样子的
尤其是 webber84
谢谢你!