Форум программистов, компьютерный форум CyberForum.ru

Упражнение из книги. - 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 {0xEF, 0xBB, 0xBF}, // UTF8 {0xFE, 0xFF, 0x00}, // Big endian {0xFF, 0xFE, 0x00}, // Little endian }; Заранее благодарен! 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: бинарный "<<": не найден оператор, принимающий правый операнд типа "Book" (или приемлемое преобразование отсутствует)" Book std= { Book("Pushkin","Stihi",1998,"Moskva",350), Book("Esenin","Rasskazi",1999,"Moskva",250.50), Book("Tolstoy","Voina i...
C++ Найти наименьший элемент односвязного линейного списка Найти наименьший элемент односвязного линейного списка. Сценарий: обходя список найти минимальное значение поля Data. Прошу помогите, ума не приложу как такое сделать. подробнее

Показать сообщение отдельно
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
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());
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru