Я пытаюсь перебрать массив и скопировать данные, но после 1023 циклов я получаю сообщение exc bad access
, и у меня возникает ощущение, что это может быть связано с моей памятью.В моем цикле мне нужно добавить данные в мой массив totalValues
, поэтому я сделал это:
memcpy(totalValues + totalCopied, tempBuffer, 600 * sizeof(float));
Это делается внутри цикла, а totalCopied
отслеживает, сколько данных было добавлено кtotalValues
так, чтобы я знал, откуда писать, когда цикл снова запускает memcpy.Я не уверен, почему я получаю ошибку «exc bad access», но моя теория состоит в том, что память не является смежной и, следовательно, строка totalValues + totalCopied
может вызывать проблемы.Я не уверен, что в этом случае возникнет ошибка, или память все равно будет перезаписана.Интересно, что это всегда происходит после 1023 циклов.Если я удаляю строку 'memcpy', программа проходит без проблем.Есть идеи, что может быть причиной этого?
РЕДАКТИРОВАТЬ - Причина была в том, что распределение памяти было жестко запрограммировано для другого файла.Обычно я не знаю длину файла до выделения памяти, так как я могу убедиться, что во время выполнения выделено достаточно памяти?