数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 80|回复: 8

感觉这种编程模式,可读性很差,MATRIX 里定义了一个 char ** 类型指针....

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
MATRIX 里定义了一个 char ** 类型指针,然后大量使用 强制类型转换,云里雾里。

本帖子中包含更多资源

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

x
发表于 4 小时前 | 显示全部楼层
低级语言是这样的,熟能成巧。
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
这是为了适配MATRIX中包含不同的数据类型(short\float\double)数据,增强通用性,程序编写上做了一定的抽象。最终效果类似于C++中的模板。

因为C语言没有模板特性,所以权宜之计,用了程序中这样的变通写法,导致可读性变差。
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
就是二维数组,做成二重指针的形式,其实很好用(简洁,方便用,形式多样)
但是阅读者就麻烦了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 小时前 | 显示全部楼层
wangbeng 发表于 2025-8-7 16:47
这是为了适配MATRIX中包含不同的数据类型(short\float\double)数据,增强通用性,程序编写上做了一定的抽 ...

多谢!
请教:对于每个 MATRIX 类型变量,理论上是不是都必须 显式释放内存?
源代码中有个别变量,没有显式释放内存。
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 小时前 | 显示全部楼层
ba21 发表于 2025-8-7 16:34
低级语言是这样的,熟能成巧。

多谢!我正在努力读懂原始逻辑。
回复 支持 反对

使用道具 举报

发表于 2 小时前 | 显示全部楼层
bh4qix 发表于 2025-8-7 17:35
多谢!我正在努力读懂原始逻辑。

回复 支持 反对

使用道具 举报

发表于 半小时前 | 显示全部楼层
bh4qix 发表于 2025-8-7 17:34
多谢!
请教:对于每个 MATRIX 类型变量,理论上是不是都必须 显式释放内存?
源代码中有个别变量,没有 ...

要看具体情况。
如果MATRIX变量中的**ptr只是指向现存的一片内存,这片内存还有其他用处,那么就不需要释放这一片内存。
如果是新建MATRIX变量后,手工分配一片内存给ptr,那么应该需要显式释放掉。

一般原则就是;谁分配的内存谁负责
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-7 21:17 , Processed in 0.109200 second(s), 7 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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