Ошибка сегментации при попытке нарисовать треугольники с помощью C - PullRequest
0 голосов
/ 12 ноября 2018

Продолжая предыдущий вопрос в предыдущей теме:

Привет, ребята! Часть 2 моих вопросов о прыгающем мяче. ( предыдущий вопрос )

Я все еще получаю ошибку сегментации в моем коде, но только во время рисования последнего элемента массива. Я вставил операторы print, чтобы точно определить, где останавливается код, и он находится на последней итерации в цикле 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 итераций до последней итерации.

Вся помощь очень ценится! Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...