6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48

Массив AnsiString**

07.03.2011, 18:46. Показов 2362. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть вопрос:
Почему при попытке удалить динамический массив AnsiString** возникает нарушение доступа, чего не случается при работе с char**?
Пример кода:
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
39
40
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
char **return_chars (int ColCount, int RowCount)
{
    char **array = new char* [RowCount];
    for (int i = 0; i < RowCount; i++)
    {
        array[i] = new char [ColCount];
    }
    return (array);
}
AnsiString **return_ansi_string (int ColCount, int RowCount)
{
    AnsiString **array = new AnsiString* [RowCount];
    for (int i = 0; i < RowCount; i++)
    {
        array[i] = new AnsiString [ColCount];
    }
    return (array);
}
int main(int argc, char* argv[])
{
    int i;
    char **res_char = return_chars(10, 5);
    for (i = 0; i < 5; i++)
    {
        delete (res_char[i]);
    }
    AnsiString **res_ansi_string = return_ansi_string(10, 5);
    for (i = 0; i < 5; i++)
    {
        delete (res_ansi_string[i]);
    }
    delete (res_ansi_string);
    return 0;
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2011, 18:46
Ответы с готовыми решениями:

Как перевести текст из AnsiString (в формате UTF8) в AnsiString формата Windows-1251?
Поиск по форуму не решил текущую проблему: 1. Есть текст в формате UTF-8 в величине: AnsiString qw; Вопрос: 2. Как перевести текст в...

Массив char в AnsiString
Здравствуйте. Пишу на 6ом билдере. Столкнулся со следующей проблемой. Есть некий массив символов: const count = 20; char *array = new...

Изменить массив Ansistring
добрый вечер форумчане. есть вопрос, над которым уже 2 дня мучаюсь, сам не большой программист ... (думал, сам сделаю, но никак не...

4
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.03.2011, 19:58
зачем
C++
1
delete (res_ansi_string);
, если вы уже все поудаляли в цикле ?
0
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48
08.03.2011, 10:46  [ТС]
Если не выполнить
C++
1
delete (res_ansi_string);
в памяти останется массив указателей *res_ansi_string[]. Да, указанная мною ошибка возникает при выполнении
C++
1
2
3
4
        for (i = 0; i < 5; i++)
        {
                delete (res_ansi_string[i]);
        }
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
08.03.2011, 17:02
C++
1
2
3
4
5
AnsiString **res_ansi_string = return_ansi_string(10, 5);
  for (i = 0; i < 5; i++) {
    delete[] res_ansi_string[i];
  }
  delete[] res_ansi_string;
не откроете секрет по ходу: а для чего тут delete (res_ansi_string[i]); - скобки ? они, как бы, и не мешают, но любопытно, черт побери ?
1
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48
08.03.2011, 18:31  [ТС]
Да секрета никакого - просто привычка. Проблему свою понял, ошибка в синтаксисе команды освобождения памяти, занятой массивом:
C++
1
 delete [] указатель;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.03.2011, 18:31
Помогаю со студенческими работами здесь

Массив AnsiString в Си++ Builder 6
Помогите извлеч данные из массива AnsiString в С++ Builder 6AnsiString *AS1; AS1=new AnsiString;Массив нормально заполняется 10 строками,...

Передать массив AnsiString в функцию
Есть массив: AnsiString S; и функция ReadPort(); Как правильно объявить и передать в функцию этот массив. ReadPort(&amp;S); ...

Строки AnsiString и массив char
void __fastcall TForm1::Button1Click(TObject *Sender) { char* memo1; char* memo2; char* memo12; int im1 =...

Преобразовать AnsiString в массив char
Здравствуйте программисты. Недавно у меня возникла необходимость воспользоваться классом для работы с файлами fstream. Но проблема в том...

Строку AnsiString разбить по словам и засунуть в массив
Есть строка: AnsiString s= &quot;Дед%Мазай%Любил%Больших%Девочек&quot;; как её можно разбить по словам и каждое слово записать в отдельную...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru