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

std::string в char* - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 http://www.cyberforum.ru/cpp-beginners/thread602685.html
С клавиатуры задается массив чисел. Нужно, используя операции + или - получить в итоге значение больше 7. Причем предложить все возможные варианты. Что-то вроде того? #include <iostream> using namespace std; const int size=10; int main() { setlocale(0,"rus");
C++ Рекурсивная функция, число и показатель степени Ребят помогите пожалуйста не могу понять как решить данную задачу: Напишите программу, которая запрашивает число и показатель степени.Напишите рекурсивную функцию, которая возводит число в степень путем многократного умножения числа на само себя, т.е если число равно 2, а показатель степени равен 4, то эта функция должна возвратить число 16. Вот не пойму как это реализовать, помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread602675.html
Нахождение минимального кол-ва слов C++
Подскажите как мне найти строку, содержащую наименьшее количество слов, и вывести её на экран монитора? в программе register char *mas = new char; register char *m = mas; register char *uk; cout << "Vvod stroki 1: "; cin.getline( m, 80 ); cout << "Vvod stroki 2: "; cin.getline( m+81, 80 );
C++ Ошибка "error C2011: переопределение типа"
struct Tunit { public : int team; int team_agricultural; POINT location; POINT moveLocation; float max_helf; float current_helf; int ID_cel;
C++ Вычислить сумму элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread602614.html
Как вычислить сумму положительных элементов матрицы А размером N*N, расположенных над главной диагональю?
C++ Перевести с паскаля на с++ Люди) есть проблемко с курсовой задачкой, вроде как нашел нужную, да вот только она не на том языке что мне нужен =( задачка большая, звучит так: Создать список, содержащий сведения об отправлении поездов дальнего следования с Казанского вокзала. Структура записи: номер поезда, станция назначения, время отправления, время в пути, наличие билетов. Кол-во записей запрашивается с клавиатуры.... подробнее

Показать сообщение отдельно
Bers
Заблокирован
11.06.2012, 18:26     std::string в char*
Цитата Сообщение от diagon Посмотреть сообщение
А мне казалось, что возвращается указатель на строку в объекте.
Я это так понимаю:
Если внутри стринга данные лежат в непрерывном блоке, то было бы странным создавать новый блок, копировать туда данные, и выдавать наружу его указатель.
Ведь с таким же успехом можно сразу выдать указатель на итак уже имеющийся блок.

Однако, поскольку стандарт не запрещает реализовывать внутренее хранилище по разному. То - не факт, что это будет именно так.

Другими словами, в отдельных случаях (реализациях стринга) это может работать. А в каких то может и не сработать. В этом и заключается смысл слова:
Цитата Сообщение от grizlik78 Посмотреть сообщение
Этого, кстати, тоже никто не обещает.
Может быть будет работать. Может быть не будет. Если нужно гарантированно портабельное решение, то лучше на такое не опираться.

Добавлено через 3 минуты
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну я вот так проверял. В любом случае и мой и Ваш варианты работают благодаря случаю. Как уже и сказали, строка действительна только до момента изменения самого объекта string.
Есть предположение, что:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
 
int main()
{
   std::string str = "12345";
   
   const char *cstr1 = str.c_str(),
              *cstr2 = 0;
   
   std::cout << str << '\n' << cstr1 << std::endl;
   
   str = "qwerty";
   
   cstr2 = str.c_str();
   
   std::cout << '\n' << str << '\n' << cstr1  //cstr1  выводит в режиме только для чтения мертвую память.
                << '\n' << cstr2 << std::endl;
   
   return 0;
}
 
Текущее время: 07:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru