Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 19
1

ООП Классы. Выделение памяти под строку char*

06.02.2015, 20:04. Показов 1830. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делал программу на освоение классов и тд. и наткнулся на такую вот штуку.При вводе с клавиатуры переменной Name типа char* программа вылетает. то есть доходит до строки cin >> Name; и прекращает свое действие.
Сам начал разбираться только недавно, так что сильно за код не ругайте.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
using namespace std;
class Student 
{
private:
    char* Name;
    int age;
    char Sex;
public:
    void Tellname()
    {
        cout << "Имя:";
        cin >> Name;
        cout << "Пол:";
        cin >> Sex;
        cout << "Дата рождения:";
        cin >> age;
    }
 
    int date()
    {
        int a;
        a = 2015 - age;
        return a;
    }
 
 
};
int main()
{
setlocale(LC_ALL, "Russian");
Student Vlad;
Vlad.Tellname();
system("pause");
return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2015, 20:04
Ответы с готовыми решениями:

Классы. Выделение памяти под Char
Программа завершает работу не давая ввести данные &quot;Customer&quot; методом introData(). Подозреваю, что ...

Выделение памяти под динамический массив char
Здравствуйте, код: #include &quot;pch.h&quot; #include &lt;iostream&gt; using namespace std; struct train...

Выделение памяти под строку
Никак не могу понять, в чем проблема, подскажите пожалуйста. Предположим, инициализирую...

Выделение памяти под строку. Замкнутый круг
Здравствуйте! Программе подается текстовый файл. Надо его считывать построчно, и загонять в...

5
63 / 63 / 47
Регистрация: 08.09.2013
Сообщений: 187
Записей в блоге: 1
06.02.2015, 20:27 2
Вы пытаетесь ввести данные в ничего. Память под "char* Name" на этапе "cin >> Name" еще не выделена.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.02.2015, 20:39 3
Поменяй тип на std::string.
0
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 19
06.02.2015, 20:41  [ТС] 4
каким способом ее выделить?
0
63 / 63 / 47
Регистрация: 08.09.2013
Сообщений: 187
Записей в блоге: 1
06.02.2015, 20:49 5
Цитата Сообщение от Владисалав Посмотреть сообщение
каким способом ее выделить?
оператором new.

Добавлено через 3 минуты
Хотя, действительно, проще будет использовать std::string, как писали выше.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
    std::string Name;
    int age;
    char Sex;
public:
    void Tellname()
    {
        cout << "Имя:";
        cin >> Name;
        cout << "Пол:";
        cin >> Sex;
        cout << "Дата рождения:";
        cin >> age;
    }
 
    int date()
    {
        int a;
        a = 2015 - age;
        return a;
    }
 
 
};
int main()
{
setlocale(LC_ALL, "Russian");
Student Vlad;
Vlad.Tellname();
system("pause");
return 0;
 
}
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.02.2015, 21:09 6
Цитата Сообщение от Владисалав Посмотреть сообщение
каким способом ее выделить?
Кого?
0
06.02.2015, 21:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2015, 21:09
Помогаю со студенческими работами здесь

[ООП] Динамическое выделение памяти
Как бы вы реализовали ОПЕРАЦИЮ приравнивания объектов в которых память под массив выделяется...

выделение памяти char*
Подскажите пожалуйста как реализовать следующее: Человек вводит что-то с клавиатуры (строку и...

Выделение динамической памяти для char[n]*
Есть количество цитат (quote), которые должны быть типа char* Есть переменная с колличеством цитат...

Выделение динамической памяти для char
Здравствуйте, возник вопрос: как выделить память для char массива? Вот, что делаю я: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru