我正在尝试为LibIGL Normal函数编写一个包装器。但到目前为止,每次我用大数组调用mex函数时,我都设法使Matlab崩溃。所以我回去尝试编写一个只返回其中一个输入作为输出的函数。输出有效,但只有它是一个小数组。当我尝试传递一个大型数组(如53490x3)时,Matlab崩溃了。
我看了其他问题,并尝试了解决方案,但问题仍然存在。
我的代码如下:
open("/sys/class/pwm/pwmchip0/npwm", O_RDONLY);
从我用它的时间开始,当我试图访问V矩阵来填充输出时,似乎发生了崩溃。所以它正在发生某种无效的内存访问(这就是错误所说的)。但我不确定如何使这项工作。我理想的是将两个矩阵作为输入并计算一个结果,该结果将是另一个特征矩阵并将其作为输出返回。
答案 0 :(得分:0)
两个建议:
您可能会溢出row
,col
,row2
,col2
。将它们从int
更改为mwSize
。不太可能是一个问题,但它将取决于机器,你不提你的设置。您可以查看limits.h
INT_MAX
,这通常很多,但mwSize
最安全。用mexPrintf
输出它们以确保它们符合您的期望。
你可能会失去记忆。检查plhs[0]
是否不是NULL
。 53490x3