Форум программистов, компьютерный форум, киберфорум
Наши страницы

Упражнение из книги. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Является ли натуральное число совершенным. С++. http://www.cyberforum.ru/cpp-beginners/thread426086.html
Составьте программу,которая проверяет,является ли натуральное число,введенное с клавиатуры совершенным. Нужна помощь, если кто сталкивался с такой задачей напишите пожайлуста!
C++ Разбор кода Здравствуйте! Подскажите, пожалуйста, что обозначает вот это Utf8_16::utf8 Utf8_16::k_Boms зачем тут нужны двоеточия :) const Utf8_16::utf8 Utf8_16::k_Boms = { {0x00, 0x00, 0x00}, // Unknown... http://www.cyberforum.ru/cpp-beginners/thread426085.html
C++ Передать в массив I(5) вторую половину массива J(10).
помогите:Передать в массив I(5) вторую половину массива J(10).
Умножение матриц C++
помогите сделать задачу: Даны матрицы: А размером m*k и В размером k*n.Получить матрицуС=A*В. Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос...
C++ Не могу вывести вектор http://www.cyberforum.ru/cpp-beginners/thread426059.html
Добрый день. Подскажите пожалуйста в чем дело. Есть массив класса. Пихаю его в вектор. Не ругается. Пытаюсь вывести - ошибка "error C2679: бинарный "<<": не найден оператор, принимающий правый...
C++ Найти наименьший элемент односвязного линейного списка Найти наименьший элемент односвязного линейного списка. Сценарий: обходя список найти минимальное значение поля Data. Прошу помогите, ума не приложу как такое сделать. подробнее

Показать сообщение отдельно
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
11.01.2012, 13:08
Здесь
C++
1
const char **arr=new const char*[vs.size()];
вы выделяете память под массив указателей из vs.size() элементов.
а здесь
C++
1
arr[i]=vs[i].c_str();
присваиваете i-тому элементу массива указателй адрес существующей строки память под которую уже выделил класс std::string. Следовательно
C++
1
arr[i]=new char[vs[i].length()];
в данном случае делать не нужно(и delete [] arr[i]; следующем цикле тоже).
P.S. если вам нужна копия строки из вектора, то следовало бы сделать так
C++
1
2
3
4
for(vector<string>::size_type i=0; i<vs.size(); ++i){
    arr[i]=new char[vs[i].length() + 1]; // +1 символ под '\0'    
    std::strcpy(arr[i], vs[i].c_str());
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru