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

Строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не работает сортироовка http://www.cyberforum.ru/cpp-beginners/thread940935.html
Здравствуйте форумчане! Суть проблемы такова, дан массив от 1 до n, пользователь вводит размер массива и количество потоков в которое должна выполняться программа, но из-за одного цикла(указал в коде) прога неправильно работает Пример: 1..9 1 2 6 4 8 2 3 6 2 вывод 1 2 2 2 3 4 6 6 8
C++ Не работает конструктор переноса Привет всем! такая проблема...создал класс с такими членами private: list<string> m_vertex; //Вершины соединены с m_edge list<string> m_only_vertex; //Одиночные вершины vector<vector<bool>> m_edge; //Ребра соединены с m_vertex vector<list<vector<string>>> m_result_is_path; //Результаты сущ путей написал конструктор переноса ... http://www.cyberforum.ru/cpp-beginners/thread940928.html
C++ Сравнение объектов string
Вопрос такой. Мне нужно организовать поиск по ключу типа string. Но сравниваются они посимвольно. if (somestring==parametr) {....} Такая вещь не подходит. Как лучше поступить?:(
как в Code::Blocks просмотреть локальные переменные? C++
знаю, что можно, а как - не знаю :( Добавлено через 15 часов 11 минут up...
C++ Почему не останавливается цикл по требованию? http://www.cyberforum.ru/cpp-beginners/thread940883.html
Здравствуйте! Интересует вопрос по теме. for (int i = 2; !flag; ++i) { if (cin.get() == 'q') flag = true; else { cin.unget(); cin>>p; price.push_back(p);
C++ int const и const int в чем разница этих записей Попалась мне тут программа для выборочно сортировки, с ней все в принципе ясно, но я в ней встретил записи, которые раньше не встречал, сначала я хотел их записать по своему т.к. думал пишется как кому нравится, но оказалось что не получится, в частности там было: void sort_first(int const dlina, int * const massiv) // я же хотел записать void sort_first(const int dlina, const int * massiv)... подробнее

Показать сообщение отдельно
AntonChik
1083 / 581 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
21.08.2013, 12:48     Строки
C++
1
2
3
4
char*getActiveNameByIndex(int i)
    {
        return getActivByIndex(i).getName();
    }
собственно вся проблема тут.
отсюда возвращается указатель на локальный участок памяти, время жизни которого равно времени выполнения функции, т.е. указатель вам вернется, но там будет с огромной долей вероятности(можно сказать всегда) совсем не то, что было во время работы функции.

тут надо либо в параметры передавать указатель на массив и его же потом возвращать, либо мутить с глобальными переменными, что в принципе не гуд.
т.е. например вот так заработает
C++
1
2
3
4
5
6
7
char res[30]; // глобально
//...
char*getActiveNameByIndex(int i)
    {   
        strcpy(res,getActivByIndex(i).getName());
        return res;
    }
но я советую использовать такой вариант:

C++
1
2
3
4
5
6
7
8
char*getActiveNameByIndex(int i, char *par)
    {   
        strcpy(par,getActivByIndex(i).getName());
        return par;
    }
// в main
    char par[30];
    cout<<Dima.getActiveNameByIndex(2, par)<<endl;
p.s.
еще как вариант можно объявить внутри самой функции char par[30] но как static и его вернуть, но это уже сами думайте, надо вам такое или нет.
 
Текущее время: 20:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru