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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.08.2019, 15:11   #1
ezus
Форумчанин
 
Регистрация: 08.05.2009
Сообщений: 58
Репутация: 10
По умолчанию 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, 15:23   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,901
Репутация: 2668
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


06:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.