我有简单的OpenGL C程序(来自NeHe lesson 2)。有初始化函数InitGL
我的静态库中有函数foo
:
void foo(double *p)
{
p[0] = 1.0;
}
当我在InitGL
的开头定义double数组时:
double arr[1000];
并在InitGL
中修改它一切正常。
当我为此数组动态分配内存并从foo
调用InitGL
时,一切正常:
double *p = (double *)malloc(1000 * sizeof(double));
foo(p);
但是当我在InitGL
开始时定义数组并从foo
调用InitGL
时:
double p[1000];
foo(p);
我在第
行得到分段错误p[0] = 1.0;
错误在哪里?
答案 0 :(得分:1)
Silver_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
3D空间。当然有 分段错误,因为我必须 声明列数(我读了它 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
一个for-loop,我忘了改变 10000到1000.现在一切正常。