Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 25.02.2011
Сообщений: 29

Утечка памяти при умножении матрицы на число

11.03.2011, 21:47. Показов 840. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.

Хочу спросить у Вас совета по поводу распределения памяти в программе.
(просьба сильно за код не ругать, так как программирую редко. Но адекватным замечаниям буду только рад)

Итак, цель - умножение матрицы на число.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
k=StrToInt(Edit4->Text);
 
  int n,m,**a;
  a= new int*[n];
  for(int i=0;i<n;i++) a[i]= new int[m];
 
  m=StringGrid1->RowCount;
  n=StringGrid1->ColCount;
 
  for (i=1; i<=m; i++)
  {
   for (j=1; j<=n; j++)
   {
    a[i][j]=StrToInt(StringGrid1->Cells[i-1][j-1]);
   }
  }
 
  for (i=1; i<=m; i++)
  {
   for (j=1; j<=n; j++)
   {
   a[i][j]*=k;
   }
  }
 
  for (i=1; i<=m; i++)
  {
   for (j=1; j<=n; j++)
   {
    StringGrid7->Cells[i-1][j-1]=IntToStr(a[i][j]);
   }
  }
 
  for (int i = 0; i < m; ++i)
  {
  delete[] a[i];
  }
  delete [] a;
При тестировании взял крохотную матрицу 4 на 4, и умножил на однозначное число - в итоге прога разрослась в памяти почти до гига(!).

При повторной попытке с гига резко снижается до метров 15 и считает уже ГОРАЗДО дольше.
При третьей попытке выдает ошибку std::bad_alloc

P.S. Вроде и код-то проще некуда...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2011, 21:47
Ответы с готовыми решениями:

Найти все двузначные числа, которые при умножении на 2 заканчиваются на 8, а при умножении на 3 - на 4.
Привет мозги, нужно решить задачу по Си++. Найти все двузначные числа, которые при умножении на 2 заканчиваются на 8, а при умножении на 3...

Найти все двузначные числа, которые при умножении на 2 заканчиваются на 8, а при умножении на 3 — на 4
Прошу помощи, ребята ! 2. Найти все двузначные числа, которые при умножении на 2 заканчиваются на 8, а при умножении на 3 — на 4. ...

Ошибка при умножении матрицы на матрицу (сами матрицы рациональные)
package src; public class RatsNum { public int p,q; public RatsNum() {p=1; q=1;} public RatsNum(int a,int b) ...

2
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
11.03.2011, 22:55
А без промежуточного массива сделать религия не позволяет?

C++
1
2
3
for (i=0; i < n; ++i)
  for (j=0; j < m; ++j)
    StringGrid7->Cells[i][j] = IntToStr(StrToInt(StringGrid1->Cells[i][j]) * k);
1
1 / 1 / 0
Регистрация: 25.02.2011
Сообщений: 29
11.03.2011, 23:56  [ТС]
Позволяет конечно) Спасибо Вам за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2011, 23:56
Помогаю со студенческими работами здесь

Утечка памяти (решение СЛАУ методом Крамера, матрицы, malloc)
Раньше программировал на C#/Java (а как следствие и расхлябанность по отношению к памяти), сейчас пытаюсь осилить C++. Более-менее понял...

Утечка памяти при удалении
Здравствуйте! Возникла проблема при удалении последнего элемента из двусвязного списка. Вот код, где я добавляю элемент в конец...

Утечка памяти при ping'e...
OS: Win7 VS 8 ************ Всем привет. Помогите определить и устранить утечку памяти. Нужен конкретный ответ именно по...

Утечка памяти при рекурсии
Здравствуйте. Столкнулся ч тем, что я, похоже, неправильно составил алгоритм рекурсии. При запуске получаю ошибку связанную с памятью....

Получить число с процентом при умножении
Пытаюсь получить число с процентом, но почему-то показывает 0 $WMR = $product -&gt; prices -&gt; $GLOBALS * 1.0638; а когда просто если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru