Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
amastudent
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 50
1

Массив символов указывает на null?

16.02.2018, 01:54. Просмотров 721. Ответов 3
Метки нет (Все метки)

ругается на указатели.
выдает invalid null pointer. причина, вероятней, связана с массивом символов
C++
1
cin >> data;
дайте совет, что тут можно исправить, чтобы программа заработала, я дойти до этого самостоятельно уже не в сидах.

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
39
40
41
42
43
44
45
// метод класса меню
void menu::inputItem(int item) {
    
    int key;
    char *data = 0;
    list newlist;
    while (item != 5)
    {
        cout << endl;
        //printMenu();
        switch (item)
        {
        case 1: {
            cout << "Введите ключ (должен быть уникальным): " << endl;
            cin >> key;
            cout << "Введите значение: " << endl;
            cin >> data;
 
 
            newlist.addData(key, data);
            break;
        }
        case 2: {
            cout << "Введите ключ (должен быть уникальным): " << endl;
            cin >> key;
            newlist.removeData(key);
            break;
        }
        case 3: {
            cout << "Введите ключ (должен быть уникальным): " << endl;
            cin >> key;
            newlist.findData(key);
            break;
        }
        case 4: {
            newlist.show();
            break;
 
        }
        case 5: break;
        default: cout << endl << "Введите корректный пункт меню!\n"; break;
        
        }
    }
}
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
// реализация метода добавления в конец элемента в классе list
 
void list::addData(int key, char *data) {
    ListNode *temp = new ListNode;
    ListNode *last = new ListNode;
    temp->next = NULL;
    temp->key = key;
    temp->data = data;
    
 
    last = first;
    while (last->next != NULL) {
        last = last->next;
    }
 
    if (first != NULL) 
    {
        temp->prev = last; 
        last->next = temp; 
        last = temp; 
    }
    else
    {
        temp->prev = NULL;
        first = last = temp;
    }
}
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
//класс лист с описанием методов
#pragma once
#ifndef list_h
#define list_h
class list
{
    class ListNode {
    public:
        int key;
        char *data;
        ListNode *prev, *next;
    };
 
    ListNode *first; // указатель на первый узел списка
 
public:
    list():first(NULL) { /*first = new ListNode; first->next = NULL;*/ }
    ~list() { del(); }
 
    void addData(int key, char *data);
    void removeData(int key);
    char *findData(int key); // вернуть данные по ключу
    void show(); // отобразить список в консольном окне
 
private:
    ListNode *findNode(int key); // поиск узла по ключу
    void del(); // удалить все узлы списка
 
};
#endif
0
Миниатюры
Массив символов указывает на null?  
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2018, 01:54
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта (dataGridView1 было null)
Делал программу по видео, там все нормально, у меня выдает ошибку....

Как проверить null или сылка на объект не указывает на экземпляр объекта
Здравствуйте!При отладке программа вылетает и выходит сообщение и указывает на эти строки: ...

На что указывает указатель на массив?
На что указывает указатель на массив? С указателем на первый элемент все понятно - он указывает на...

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на...

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

3
nd2
3100 / 2594 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
16.02.2018, 02:36 2
Цитата Сообщение от amastudent Посмотреть сообщение
C++
1
char *data = 0;
C++
1
char data[40];
1
amastudent
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 50
16.02.2018, 02:49  [ТС] 3
nd2,
0
Миниатюры
Массив символов указывает на null?  
nd2
3100 / 2594 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
16.02.2018, 02:59 4
Лучший ответ Сообщение было отмечено amastudent как решение

Решение

data и там, и там должен быть массивом char, тогда:
C++
1
strcpy(temp ->data, data);
Добавлено через 3 минуты
Цитата Сообщение от amastudent Посмотреть сообщение
C++
1
2
3
4
5
6
7
class ListNode 
{ 
    public: 
    int key; 
    char *data; 
    ListNode *prev, *next; 
};
C++
1
2
3
4
5
6
7
class ListNode 
{ 
    public: 
    int key; 
    char data[100]; 
    ListNode *prev, *next; 
};
1
16.02.2018, 02:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2018, 02:59

Маска ввода: любое число необязательных строчных символов (Null, если поле не заполнено)
Одно из заданий не могу сделать 4. Создать формат текстового поля так, чтобы можно было вводить...

Массив String - Ссылка на объект не указывает на экземпляр объекта
Доброго дня. Собственно, код функции поиска группы в домене по названию: // Описываем функцию...

Как правильно создать массив PictureBox (Ссылка на объект не указывает на экземпляр объекта)
Здравствуйте! Начал изучать WF и столкнулся с такой проблемой: Пытаюсь создать Массив PictureBox ,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.