尝试使用C

时间:2018-11-12 20:37:39

标签: c for-loop malloc

在上一个线程中继续上一个问题:

大家好!我的弹跳球问题的第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次迭代而直到最后一次迭代没有问题时。

非常感谢所有帮助!预先感谢。

0 个答案:

没有答案