在上一个线程中继续上一个问题:
大家好!我的弹跳球问题的第2部分。 (previous question)
我仍然在代码中遇到分段错误,但仅在绘制数组的最后一个元素时才出现。我已经输入了打印语句,以查看代码的确切位置,它在下面的for循环的最后一次迭代中:
void draw_object(object_t *object)
{
for (int i = 0; i < object->numtriangles; i++) {
/* Translate triangle into middle of screen before drawing it */
object->model[i].tx = object->surface->w/2;
object->model[i].ty = object->surface->h/2;
/* Set new rotation and scale it down */
object->model[i].rotation = object->rotation;
object->model[i].scale = object->scale;
/* And draw it */
draw_triangle(object->surface, &object->model[i]);
printf("ok\n %d", i+1);
}
现在,该组中有478个元素,在出现分段错误之前经过了477个。如果我将for循环中的第二个条件更改为这样的话:
for(int i=0, i<200, i++)
细分故障在199次迭代后出现。 我不知道为什么会这样。我认为内存用尽的可能性很小,尤其是当我可以进行400次迭代而直到最后一次迭代没有问题时。
非常感谢所有帮助!预先感谢。