我遇到QThread问题。 我在GUI线程中做了一些计算,但它确实有效。 但是现在我尝试在工作线程中进行计算,并且存在运行时错误。
A有这个功能。
double **matrix(int nx,int ny, int shift)
{
int i;
double **m=(double **)calloc(nx+1, sizeof(double*));
for (i=0;i<=nx;i++) m[i]=(double *)calloc(ny+1,sizeof(double))+shift;
return m+shift;
}
在run()函数中,想要这样做:
double **lop=matrix(1,2,3);
但是在这一行中存在这样的错误:SIGSEGV Segmentation fault。 一个不明白,为什么错误只在工作线程中。因为在GUI线程中运行时,它可以工作。
请原谅我的英语不好。
答案 0 :(得分:0)
你不能移动3.你必须让事物与单词边界对齐。字是两个字节,因此移位只能是偶数。你想要的Perhaphs
return m + shift*sizeof(double*);