C 调用静态库函数时出现分段错误

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

我有一个简单的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(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答案发布,在这种情况下这似乎是合理的。