Продолжая предыдущий вопрос в предыдущей теме:
Привет, ребята! Часть 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 итераций до последней итерации.
Вся помощь очень ценится! Заранее спасибо.