调用静态库函数时出现分段错误
我有简单的 OpenGL C 程序(来自 NeHe 第 2 课)。有初始化函数InitGL。
我的静态库中有函数 foo
:
void foo(double *p)
{
p[0] = 1.0;
}
当我在 InitGL
开头定义 double 数组时:
double arr[1000];
并在 InitGL
中修改它,一切正常。
当我动态地为这个数组分配内存并从 InitGL
调用 foo
时,一切都正常:
double *p = (double *)malloc(1000 * sizeof(double));
foo(p);
但是当我在 InitGL
开头定义数组并调用时来自 InitGL
的 foo
:
double p[1000];
foo(p);
我在
p[0] = 1.0;
错误在哪里?
I have simple OpenGL C program (from NeHe lesson 2). There is initialization function InitGL.
And i have function foo
in my static library:
void foo(double *p)
{
p[0] = 1.0;
}
When i define array of double at start of InitGL
:
double arr[1000];
and modify it in InitGL
all works fine.
When i allocate memory for this array dynamically and call foo
from InitGL
all works fine too:
double *p = (double *)malloc(1000 * sizeof(double));
foo(p);
But when i define array at start of InitGL
and call foo
from InitGL
:
double p[1000];
foo(p);
i get segmentation fault at line
p[0] = 1.0;
Where is the error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Silver_Ghost 的已编辑问题,已在此处输入,因此该问题不会显示为有 0 个答案:
Silver_Ghost's edited question, entered here so the question doesn't show up as having 0 answers: