2010-04-10 2 views
1

Я работаю над программой, которая требует, чтобы я использовал 4 матрицы размером [1000] [1000]. Я создал их с помощью malloc(), но когда я пытаюсь запустить программу, он просто падает, а использование памяти увеличивается до 2,5 ГБ. Пожалуйста, предложите любое решение как можно скорее. Я был бы признателен.проблема с распределением динамической памяти

+3

Можете ли вы показать код, который вы запускаете, для создания этих матриц? Каков тип элемента в каждой матрице? Вы пробовали создавать меньшие матрицы и видеть, насколько высоко используется память? –

+2

Нам нужно гораздо больше информации, чтобы предлагать решения. Почтовый индекс. – meagar

+2

Согласовано. CODECODECODE! = D –

ответ

0

Почему бы вам не запустить программу внутри отладчика, такую ​​как gdb, чтобы увидеть, где именно он сбой? Это поможет вам сузить проблему.

+0

Я не согласен с тем, что это проголосовало ... учитывая представленную информацию, я думаю, что это лучший ответ, который можно было бы дать. = P –

+1

Быть «лучшим ответом, который можно дать», не обязательно делает его особенно хорошим ответом. Лично я бы не стал его понижать, но я бы тоже не склонялся к этому. –

1

4 матрицы размером [1000] [1000]

Почему malloc(), когда вы знаете, во время компиляции, сколько памяти вам нужно? Динамическое распределение двумерных массивов - это не самая тривиальная вещь, и не освобождает их (см. C FAQ, Question 2.14 на одном из способов сделать это). Не слишком усложняйте свои программы.

Смежные вопросы