Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 06.08.2019, 14:11   #1
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 58
По умолчанию Ms VS-2017 C++ темплейты

Добрый день.

Проблема непонимания основ.

Есть код
Код:
CPtrArray strOut;	strOut.SetSize(0, 5);

CArray<CStringArray, CStringArray> strChildOuts;		strChildOuts.SetSize(0, szchs);

for (int ic = 0; ic < szchs; ic++)
{
		CStringArray& strChildOut = strChildOuts[ic];
		strOut.Add(&strChildOut);
}
В нем:
CPtrArray strOut - список указателе на CStringArray

В цикле мне надо создать несколько CStringArray, заполнить их и сохранить указатели на них в strOut. Сначала я сделал классическую ошибку описав массив CStringArray strChildOut внутри цикла. Быстро ее нашел, но уперся в "что дальше".

Вынес описание во вне цикла, создав для этого массив: CArray<CStringArray, CStringArray> strChildOuts.
Но никак не могу получить указатель на элемент strChildOuts[ic], чтобы поместить его в strOut.

Падает в рантайме.

Я что-то не понимаю в основах использования темплейтов или где-то рядом.

В чем ошибка?
ezus вне форума Ответить с цитированием
Старый 06.08.2019, 14:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Вы указали, что у вас массивы длины 0. Потом пытаетесь индексировать, да еще и сохраняете указатель на то, что может переместиться.
p51x вне форума Ответить с цитированием
Старый 06.08.2019, 14:35   #3
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 58
По умолчанию

Спасибо, понятно.
А какой вариант модно предложить?
ezus вне форума Ответить с цитированием
Старый 06.08.2019, 14:38   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Для начала надо знать задачу и код. Пока непонятно зачем вам еще один массив с указателями, меняется ли ваш исходный массив и т.д.
p51x вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Юмор 2017 Вадим Мошев Свободное общение 213 01.01.2018 22:09
Visual Studio 2017 NielsR Общие вопросы .NET 1 27.09.2017 08:11
установка vs 2017 ts-alan Общие вопросы .NET 13 21.04.2017 16:06
Масленица 2017 Pavia Свободное общение 7 25.02.2017 08:18
V-Ray 3.40 (3ds max 2017) mr_xxx Моделирование, изометрия, photoshop, 3d редакторы 1 28.10.2016 08:18


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840