鱼C论坛

 找回密码
 立即注册
查看: 2060|回复: 6

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

[复制链接]
发表于 2021-2-22 09:47:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

double *v2skew (double a[M])

{

double (*p)[3];

p=a;

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

return *p;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-22 10:57:45 From FishC Mobile | 显示全部楼层
-a(2)是神马鬼,电脑哪能识别这东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 12:21:40 | 显示全部楼层
wp231957 发表于 2021-2-22 10:57
-a(2)是神马鬼,电脑哪能识别这东西

-a(2)是matlab上的写法,大概就是这个意思,我这不是在下面写成了c语言的数组形式嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 13:32:31 From FishC Mobile | 显示全部楼层
水上漂飞飞飞 发表于 2021-2-22 12:21
-a(2)是matlab上的写法,大概就是这个意思,我这不是在下面写成了c语言的数组形式嘛

完全不知道你写的什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 13:52:03 | 显示全部楼层
p=a;
应该改成 p=&a;

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

而且你的p是指向有三个元素的数组,
你用来存放9个元素,
虽然不会报错,但是容易数据丢失
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 15:24:24 | 显示全部楼层

我在把matlab的程序转C语言,然后a(2)是matlab上面表示a第二个元素的方法,我改成C语言不就是a[2]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 15:27:51 | 显示全部楼层
李京 发表于 2021-2-22 13:52
p=a;
应该改成 p=&a;

对对对,我给疏忽了,那我返回值写  *p是是对的嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 13:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表