水上漂飞飞飞 发表于 2021-2-22 09:47:17

输入向量(就是一维数组),返回二维数组

有一个函数的作用是假设输入向量a——有3个元素的一维数组,然后按照的格式输出一个三行三列的二维数组;
我写的是这样的,但感觉有问题~

double *v2skew (double a)

{

double (*p);

p=a;

*p=0;
*(*p+1) = -a;
*(*p+2) = a;
*(*(p+1)) = a;
*(*(p+1)+1) = 0;
*(*(p+1)+2) = -a;
*(*(p+2)) = -a;
*(*(p+2)+1) = a;
*(*(p+2)+2) = 0;

return *p;
}

wp231957 发表于 2021-2-22 10:57:45

-a(2)是神马鬼,电脑哪能识别这东西

水上漂飞飞飞 发表于 2021-2-22 12:21:40

wp231957 发表于 2021-2-22 10:57
-a(2)是神马鬼,电脑哪能识别这东西

-a(2)是matlab上的写法,大概就是这个意思,我这不是在下面写成了c语言的数组形式嘛

永恒的蓝色梦想 发表于 2021-2-22 13:32:31

水上漂飞飞飞 发表于 2021-2-22 12:21
-a(2)是matlab上的写法,大概就是这个意思,我这不是在下面写成了c语言的数组形式嘛

完全不知道你写的什么

李京 发表于 2021-2-22 13:52:03

p=a;
应该改成 p=&a;

要不然你下面进行解引用的时候就会出错

而且你的p是指向有三个元素的数组,
你用来存放9个元素,
虽然不会报错,但是容易数据丢失

水上漂飞飞飞 发表于 2021-2-22 15:24:24

永恒的蓝色梦想 发表于 2021-2-22 13:32
完全不知道你写的什么

我在把matlab的程序转C语言,然后a(2)是matlab上面表示a第二个元素的方法,我改成C语言不就是a

水上漂飞飞飞 发表于 2021-2-22 15:27:51

李京 发表于 2021-2-22 13:52
p=a;
应该改成 p=&a;



对对对,我给疏忽了,那我返回值写*p是是对的嘛
页: [1]
查看完整版本: 输入向量(就是一维数组),返回二维数组