Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Skywalker(cyb)
0 / 0 / 0
Регистрация: 14.01.2009
Сообщений: 5
#1

Правильное выдиление динамической памяти для двумерного массива - C++

14.01.2009, 16:12. Просмотров 1225. Ответов 3
Метки нет (Все метки)

Код
#include'iostream.h'
#include'stdio.h'
#include'string.h'
void main()
{  
    char **text;
    int i,j,k,nm;
    char s[100];
    cout << 'kolvo predl=';
    cin>>nm;
    text=new char*[nm];
    for(i=0;i<nm;i++)
   {   
       printf('Enter string
');
       gets(s);
       k=strlen(s);
       text[i]=new char[k];
       strcpy(text[i],s); 
    }
    for(i=0;i<nm;i++)
    {
        for(j=0;j<k;j++)
        {
             cout<<text[i][j];
        }
        cout<<'
';
     }
     delete [] text;
}
Правильно ли я выделяю динамическую память для двумерного массива ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2009, 16:12     Правильное выдиление динамической памяти для двумерного массива
Посмотрите здесь:

Выделение динамической памяти для двумерного массива. C++
C++ Динамическое выделение памяти для двумерного массива
C++ Правильное удаление двумерного динамического массива ( нужен ли delete[] array )
C++ Полное правильное описание двумерного массива
ЕГЭ. С4, С2 - обработка массива - правильное выделение памяти C++
C++ Как узнать размер массива в динамической памяти?
Индексация массива в динамической памяти C++
Правильное удаление динамического двумерного массива C++
Как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение C++
C++ Выделение динамической памяти для массива точек
C++ Ошибка выделения памяти для двумерного массива
C++ Динамическая загрузка и освобождение памяти для двумерного массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
14.01.2009, 22:13     Правильное выдиление динамической памяти для двумерного массива #2
По-моему, правильно, только удалять надо не только массив указателей, но и сами строки. Что-нибудь вроде:
Код
  for(i=0;i<nm;i++)  {
   delete [] text[i];
  }
  delete [] text;
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
14.01.2009, 22:15     Правильное выдиление динамической памяти для двумерного массива #3
А нееет, неправильно. Нужно предусмотреть место для нулевого символа, завершающего строку.

text[i]=new char[k+1];
Skywalker(cyb)
0 / 0 / 0
Регистрация: 14.01.2009
Сообщений: 5
16.01.2009, 16:05  [ТС]     Правильное выдиление динамической памяти для двумерного массива #4
Всем спасибо !
Yandex
Объявления
16.01.2009, 16:05     Правильное выдиление динамической памяти для двумерного массива
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru