求救:如何实现二维数组的指针形式调用(cvi)
想要用指针实现二维数组的动态定义,但如程序所示,如果直接定义成ComplexNum co;则可以在函数参数传递时直接输入数组名co。但如果定义成ComplexNum **p,则在函数参数传递时会提示出错:FATAL RUN-TIME ERROR: "test.c", line 52, col 14, thread id 0x00000DEC: Array argument too small (12 bytes).Argument must contain at least 144 bytes (144 elements).似乎是系统运行时不认可p是一个二维数组,只认为是一维的。
#include <analysis.h>
#include <ansi_c.h>
#include <userint.h>
#include <formatio.h>
main()
{
ComplexNum y;
ComplexNum co;
ComplexNum **p;
int i=0,j=0;
int n=3;
p=(ComplexNum**)malloc(3*sizeof(ComplexNum*));
for(i=0;i<3;i++)
p=(ComplexNum*)malloc(3*sizeof(ComplexNum ));
/*下面是对二维数组co和p的赋值**/
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
if(i<j)
p.imaginary=(-1)*((i*n)+j+1);
else
p.imaginary=(i*n)+j+1;
}
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
p.real=(i*n)+j+1;
}
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
if(i<j)
co.imaginary=(-1)*((i*n)+j+1);
else
co.imaginary=(i*n)+j+1;
}
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
co.real=(i*n)+j+1;
}
/*调用函数对二维数组实现共轭转置*/
CxTranspose(co,3,3,y);//这样传递参数可以
CxTranspose(p,3,3,y); //wrong! 提示: Array argument too small (12 bytes)
//Argument must contain at least 144 bytes (144 elements).
NULL;
} 渴望得到高人指点!:@) 拜托啊
没人吗?:'( 关注啊
页:
[1]