C 调用静态库函数时出现分段错误
我有一个简单的OpenGL C程序(来自)。有初始化函数InitGL。C 调用静态库函数时出现分段错误,c,segmentation-fault,static-libraries,C,Segmentation Fault,Static Libraries,我有一个简单的OpenGL C程序(来自)。有初始化函数InitGL。 我的静态库中有函数foo: void foo(double *p) { p[0] = 1.0; } 当我在InitGL开头定义double数组时: double arr[1000]; double p[1000]; foo(p); 然后在InitGL中对其进行修改,一切正常 当我为这个数组动态分配内存并从InitGL调用foo时,所有这些都可以正常工作: double *p = (double *)malloc
我的静态库中有函数
foo
:
void foo(double *p)
{
p[0] = 1.0;
}
当我在InitGL
开头定义double数组时:
double arr[1000];
double p[1000];
foo(p);
然后在InitGL
中对其进行修改,一切正常
当我为这个数组动态分配内存并从InitGL
调用foo
时,所有这些都可以正常工作:
double *p = (double *)malloc(1000 * sizeof(double));
foo(p);
但是当我在InitGL
的开头定义数组并从InitGL
调用foo
时:
double arr[1000];
double p[1000];
foo(p);
我在线路上遇到了故障
p[0] = 1.0;
错误在哪里?Silver\u Ghost编辑的问题,在此处输入,因此该问题不会显示为有0个答案: 非常非常愚蠢的错误:D
最初我编写了一个函数:
void cg_random_points(double **dest, int n,
double xl, double xr,
double yl, double yr,
double zl, double zr) for generate set of random points in
三维空间。当然有
这是我的错,因为我必须
声明列数(我读过)
30分钟前在Kernighan和
里奇书:)当我修正函数时
声明
void cg_random_points(double (*dest)[3], int n,
double xl, double xr,
double yl, double yr,
double zl, double zr) segmetation fault continued throw by
一个循环,我忘了找钱
一万到一千。现在一切都好了
向我们展示实际的代码——没有它,我们只是猜测。呈现的代码应该可以正常工作。我会责怪代码另一部分的内存损坏,因为它只在放在堆栈上时发生。很抱歉,我发现了错误并更新了我的问题:)你应该将解决方案作为答案发布,然后接受它,这样就不会显示为未回答的问题。@软件,我刚刚编辑了问题并将其“答案”作为wiki答案发布,在这种情况下这似乎是合理的。