使用MATLAB mex将矢量分配给另一个矢量时出现分割错误
Segmentation fault when assigning vector with another vector using MATLAB mex
这是错误在执行过程中出现的地方:
C[check].S = vector<int>(S1);
end C是一个全局结构数组,定义为:
typedef struct C_type{
double e;
vector <int> S;
}Cache;
Cache *C;
现在这个问题是有时它会出现分段错误,所以有什么建议可以解决吗?(S1
不为空,S[check].S
始终为空)。
由于这是C++,请使用Cache *C = new Cache[K*T*T];
。当创建每个Cache
时,需要初始化vector<int> S
,因此使用new
来完成此操作。malloc
唯一做的就是分配字节块,但不初始化内容。
当你完成delete[] C
时,不要忘记它。
还可以看看这篇关于C++中struct
的文章,它可能会通过去掉typedef
来简化结构定义。
相关文章:
- C++映射分割错误(核心转储)
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 在指向函数中读取变量时出现分割错误
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 分割错误:向量中的擦除功能
- 向量向量的分割错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 集合布局上的 Qt 分割错误
- 高达20亿的筛子会产生分割错误
- G :内部编译器错误:分割故障(程序CC1PLUS) - 我在哪里开始
- 二进制搜索树操作程序错误:分割故障(核心倾倒)
- 在给出正确的输出后,给出错误分割错误(核心转储)
- 得到错误分割错误(核心转储)进程返回139 (0x8B)
- 内部编译错误:分割错误在gcc.发送可变模板到struct时