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

Сколько живёт строковый литерал? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамический массив структур http://www.cyberforum.ru/cpp-beginners/thread1090853.html
:-| по рисунках нужно написать программы(отдельные), которая обеспечят следующее расположение данных в памяти
C++ Как подключить библиотеку? Скачал c boost.org архив с библиотекой boost скинул в папку @C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\\lib\boost@ пытаюсь подключить: #include <C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\boost\boost\filesystem\path.hpp> #include <C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\boost\boost\filesystem\fstream.hpp> #include <C:\Program Files... http://www.cyberforum.ru/cpp-beginners/thread1090834.html
C++ не правильно выводит результат
тестю код на таком примере 6 6 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1
Сортировка вектора C++
struct A { int a; double e; }; vector <A> z; sort(z.begin(), z.end(), ......) отсортировать по а ( дописать где многоточие) Прошу помочь, дописать только там где многоточие, без дополнительных строк, заранее спасибо
C++ В одномерном массиве А из n элементов удалить средний элемент http://www.cyberforum.ru/cpp-beginners/thread1090812.html
В одномерном массиве А из n элементов удалить средний элемент
C++ Как узнать что при считывание очередного слова в string был сделан переход на новую строку в файле? подскажите пожалуйста, как узнать что при считывание очередного слова в string был сделан переход на новую строку в файле?. ПС не предлагайте метод getline подробнее

Показать сообщение отдельно
mariko_11
2 / 2 / 1
Регистрация: 11.03.2013
Сообщений: 64
06.02.2014, 18:00     Сколько живёт строковый литерал?
Имеется код
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
class myClass
{
public:
    myClass(char *s){str=s;}
    void print() {cout << str << endl;}
 
private:
    char *str;
};
 
int main()
{
    myClass a("ne erunda li?");
 
    a.print();
 
    cout << "Hello World!" << endl;
    return 0;
}
Сколько живёт строковый литерал? Не будет ли такой проблемы, что после выходе из конструктора в память, где ранее хранилось "ne erunda li?\0", будет записано что-то ещё?

Кстати, компилятор выдаёт предупреждение с указанием на строчку, где объявляется объект:
C:\Users\Students\Documents\untitled8\main.cpp:17: предупреждение: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myClass a("ne erunda li?");
^
Как можно это обойти с минимальными изменениями кода класса?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru