Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 12:08   #1
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
По умолчанию Переинициализация массива строк

Ребята привет,такой вопрос:
создаю массив строк
string mass[]={"one","two","three"};
по теории, mass является указателем на кусок памяти где будет лежать массив.
Почему тогда VS Ругается когда я пытаюсь переинициализировать массив следующим способом:
mass=new string[3];
Ведь New должен выделить такой же кусок памяти на массив string Длиной в три обьекта.
Причем пишет что невозможно преобразовать std::string* в Std::string[3] .
даже если приходится разименовывать указатель обратно следующим способом
mass=*(new string[3]); то ошибка остается почти такая же
std::string в std::string[3]. за иисключением что теперь нет знака указателя.
Возможно строка new string[3] выделяет одну строку длиной в три символа, но тогда как мне выделить память на три такие строки?
И второй вопрос зависящий от ответа на первый:
можно ли в таком случае в операции new сразу инициализировать массив?
inmyacid вне форума Ответить с цитированием
Старый 15.03.2013, 14:29   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Не путайте массивы с указателями!
можете сделать так (но лучше не надо):
string mass[] = { ... };
string* ptr = mass;
...
ptr = new string[3];

Лучше так не делать, потому что память надо освобождать а вызов delete [] ptr когда ptr указывает на mass ни к чему хорошему не приведет.
waleri вне форума Ответить с цитированием
Старый 18.03.2013, 10:50   #3
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
По умолчанию

а чем они будут отличаться в данном варианте? тем что в указатель на массив нельзя записать адрес памяти?

Последний раз редактировалось inmyacid; 18.03.2013 в 11:12.
inmyacid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дублирование массива строк Ruden Microsoft Office Excel 16 20.07.2016 09:57
удаление строк массива XaHTeP Паскаль, Turbo Pascal, PascalABC.NET 8 12.01.2013 20:23
сравнение массива строк и массива чисел RevenGGe Общие вопросы C/C++ 21 03.06.2012 18:49
Сортировка массива строк МихаилБ Помощь студентам 2 25.06.2011 21:41
сортировка массива строк в Си SpLIne Общие вопросы C/C++ 2 15.04.2010 16:17