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

С-строки. Где храняться? Когда удаляются? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что есть причиной ошибки? http://www.cyberforum.ru/cpp-beginners/thread631795.html
Здравствуйте. Задача: Функция, принимает в качестве параметров: многозначное целое число, символ – разделитель. Возвращает строку вида: 1*232*233 Вот моё решение: #include <iostream> using namespace std; void Chislo(int, char); void main() { int Dig;
C++ "Анонимные" (временные) объекты? Пусть имеется класс T: class T { public: int a; int b; T(int _a, int _b) : a(_a), b(_b) {} } Имеется функция void func(T* obj) http://www.cyberforum.ru/cpp-beginners/thread631788.html
Массив объектов класса C++
class abc { public: int x,y; }; abc all; int main() { all.x=5; all.x=6;
Пролетает cin >> C++
Нужно заполнять вектор пока не введено 'x', потом сложить количество (введенное) первых элементов. После 'x' программа сразу завершается!!! . И еще вопрос как фильтровать ввод cin >> (число) от не числа. Спасибо!!! #include <iostream> #include <vector> using namespace std; int main() { vector<double> stream;
C++ пишем свой троян с нуля http://www.cyberforum.ru/cpp-beginners/thread631770.html
Всем привет)))соглашусь, что изобретаю велосипед, но хочется сделать все своими ручками не прибегая к open source и т.п. для повышения своего опыта в программировании на Visual C++ . Хочу, чтобы меня поставили на иснниный путь. Итак, цель - написание трояна, а именно кейлоггера) для получения пароля от vk.com. Погуглил , почитал мануалы парочку часов, узнал основные схемы проникновения троянов на...
C++ комманды с system("") где можно найти описания всех комманд с system. пример system("PAUSE") или system("cls") подробнее

Показать сообщение отдельно
Alberto_Timakov
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 183
01.08.2012, 20:09     С-строки. Где храняться? Когда удаляются?
есть, к примеру, такой класс

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Hero
{
private:
   char * name;    
 
public:
   Hero(char * n = "TORIN")
   {
        this->name = n;
   }
 
   char * get_name()
   {
        return name;
   }
};
C++
1
2
3
4
5
6
int main(void)
{
    Hero h;
    cout << h.get_name();
    return 0;
}
Почему не выдает ошибки? "char * n" в параметрах конструктора определена, т.е.локально...

пример 2.

C++
1
2
3
4
5
6
7
int main(void)
{
    char * p1 = "Kotik"; // к примеру, адрес, который получает p1, равен 003454e0
    char * p2 = "Kotik"; //тогда и p2 получает тот же адрес, т.е. 003454e0
    cout << h.get_name();
    return 0;
}
Во втором примере разве не должны были указатели иметь разные адреса? Или компилятор, когда находит строку, то он ее сравнивает со строками, хранящимися где-то, и если совпадают, то новую память не выделяет, а возвращает уже адрес на память выделенную раньше? Каша в голове...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru