Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
159 / 151 / 92
Регистрация: 18.11.2015
Сообщений: 677
1

Invalid null pointer

03.01.2016, 11:00. Просмотров 1085. Ответов 3
Метки нет (Все метки)

Так она работает:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include <iostream>
#include <conio.h>
#include <list>
#include <string>
 
using namespace std;
 
void addItem(list<string>& exampleList);
void printList(list<string>& exampleList);
void removeItem(list<string>& exampleList);
void replaceItem(list<string>& exampleList);
 
int main() {
    string input;
 
    list<string> Items;
    do {
        cout << "________________________________________________________________________________\n";
        cout << "                              LIST SIMULATOR 2016";
        cout << "\n________________________________________________________________________________";
        cout << "\n\n1. Add item\n2. Remove item.\n3. Replace items.\n4. Print list.\n5. Exit\n\n";
        cout << "Select the prefered option: ";
        cin >> input;
        if (input == "1")
            addItem(Items);
        else if (input == "2")
            removeItem(Items);
        else if (input == "3")
            replaceItem(Items);
        else if (input == "4")
            printList(Items);
        else if (input == "5")
            break;
        else {
            cout << "Invalid input!\n\n";
            system("pause");
            system("cls");
        }
    } while (true);
 
    return 0;
}
 
void addItem(list<string>& exampleList) {
    system("cls");
    cout << "\n================================================================================\n";
    cout << "                                ADDING TO LIST!";
    cout << "\n\n================================================================================\n";
    string itemName;
    cout << "\n\nEnter the name of item you want to add: ";
    cin >> itemName;
    exampleList.push_back(itemName);
    system("cls");
}
void removeItem(list<string>& exampleList) {
    system("cls");
    int count = 0;
    list<string>::iterator it;
    cout << "\n================================================================================\n";
    cout << "                              REMOVING FROM LIST!";
    cout << "\n\n================================================================================\n";
    string itemName;
    cout << "\n\nEnter the name of item you want to remove: ";
    cin >> itemName;
    cout << "\n";
    for (it = exampleList.begin(); it != exampleList.end(); it++) {
        *it;
        if (itemName == (*it)) {
            exampleList.remove(itemName);
            cout << "Item " << itemName << " was successfuly removed!\n";
            break;
        }
        else
            count++;
        if (count >= (exampleList.size())) {
            cout << "Item " << itemName << " was not found!\n";
            break;
        }
    }
    cout << "\n";
    system("pause");
    system("cls");
}
void printList(list<string>& exampleList) {
    system("cls");
    list<string>::iterator it;
    cout << "\n================================================================================\n";
    cout << "                                LIST PRINTING!";
    cout << "\n\n================================================================================\n";
    cout << "\n\n";
    for (it = exampleList.begin(); it != exampleList.end(); it++) {
        cout << *it << endl;
    }
    cout << "\n";
    system("pause");
    system("cls");
}
void replaceItem(list<string>& exampleList) {
    system("cls");
    string itemName1, itemName2; int count1, count2;
    list<string>::iterator it1 = exampleList.begin();
    list<string>::iterator it2 = exampleList.begin();
    int item1 = 0; int item2 = 0;
    cout << "\n================================================================================\n";
    cout << "                               REPLACING ITEMS!";
    cout << "\n\n================================================================================\n";
    cout << "\n\n";
    cout << "Enter the name of first item you want to replace: ";
    cin >> itemName1;
    cout << "Enter the name of second item you want to replace: ";
    cin >> itemName2;
    count1 = 0;
    for (it1; it1 != exampleList.end(); it1++) {
        *it1;
        if (itemName1 == (*it1)) {
            cout << "Item " << itemName1 << " was found!\n";
            item1 = 1;
            break;
        }
        else
            count1++;
        if (count1 >= (exampleList.size())) {
            cout << "Item " << itemName1 << " was not found!\n";
            break;
        }
    }
    count2 = 0;
    for (it2; it2 != exampleList.end(); it2++) {
        *it2;
        if (itemName2 == (*it2)) {
            cout << "Item " << itemName2 << " was found!\n";
            item2 = 1;
            break;
        }
        else
            count2++;
        if (count2 >= (exampleList.size())) {
            cout << "Item " << itemName2 << " was not found!\n";
            break;
        }
    }
    if ((item1 == 1) && (item2 == 1)) {
        cout << "Replacing!\n";
        exampleList.push_back(itemName1);
        exampleList.push_back(itemName2);
        (*it1) = exampleList.back();
        exampleList.pop_back();
        (*it2) = exampleList.back();
        exampleList.pop_back();
    }
    cout << "\n";
    system("pause");
    system("cls");
}
А так нет:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <iostream>
#include <conio.h>
#include <list>
#include <string>
 
using namespace std;
 
void addItem(list<string>& exampleList);
void printList(list<string>& exampleList);
void removeItem(list<string>& exampleList);
void replaceItem(list<string>& exampleList);
string proccessMenu(string input, list<string>& exampleList);
 
int main() {
    string userInput;
 
    list<string> Items;
    do {
        cout << "________________________________________________________________________________\n";
        cout << "                              LIST SIMULATOR 2016";
        cout << "\n________________________________________________________________________________";
        cout << "\n\n1. Add item\n2. Remove item.\n3. Replace items.\n4. Print list.\n5. Exit\n\n";
        cout << "Select the prefered option: ";
        cin >> userInput;
        proccessMenu(userInput, Items);
        if (proccessMenu(userInput, Items) == "5")
            break;
    } while (true);
 
    return 0;
}
 
void addItem(list<string>& exampleList) {
    system("cls");
    cout << "\n================================================================================\n";
    cout << "                                ADDING TO LIST!";
    cout << "\n\n================================================================================\n";
    string itemName;
    cout << "\n\nEnter the name of item you want to add: ";
    cin >> itemName;
    exampleList.push_back(itemName);
    system("cls");
}
void removeItem(list<string>& exampleList) {
    system("cls");
    int count = 0;
    list<string>::iterator it;
    cout << "\n================================================================================\n";
    cout << "                              REMOVING FROM LIST!";
    cout << "\n\n================================================================================\n";
    string itemName;
    cout << "\n\nEnter the name of item you want to remove: ";
    cin >> itemName;
    cout << "\n";
    for (it = exampleList.begin(); it != exampleList.end(); it++) {
        *it;
        if (itemName == (*it)) {
            exampleList.remove(itemName);
            cout << "Item " << itemName << " was successfuly removed!\n";
            break;
        }
        else
            count++;
        if (count >= (exampleList.size())) {
            cout << "Item " << itemName << " was not found!\n";
            break;
        }
    }
    cout << "\n";
    system("pause");
    system("cls");
}
void printList(list<string>& exampleList) {
    system("cls");
    list<string>::iterator it;
    cout << "\n================================================================================\n";
    cout << "                                LIST PRINTING!";
    cout << "\n\n================================================================================\n";
    cout << "\n\n";
    for (it = exampleList.begin(); it != exampleList.end(); it++) {
        cout << *it << endl;
    }
    cout << "\n";
    system("pause");
    system("cls");
}
void replaceItem(list<string>& exampleList) {
    system("cls");
    string itemName1, itemName2; int count1, count2;
    list<string>::iterator it1 = exampleList.begin();
    list<string>::iterator it2 = exampleList.begin();
    int item1 = 0; int item2 = 0;
    cout << "\n================================================================================\n";
    cout << "                               REPLACING ITEMS!";
    cout << "\n\n================================================================================\n";
    cout << "\n\n";
    cout << "Enter the name of first item you want to replace: ";
    cin >> itemName1;
    cout << "Enter the name of second item you want to replace: ";
    cin >> itemName2;
    count1 = 0;
    for (it1; it1 != exampleList.end(); it1++) {
        *it1;
        if (itemName1 == (*it1)) {
            cout << "Item " << itemName1 << " was found!\n";
            item1 = 1;
            break;
        }
        else
            count1++;
        if (count1 >= (exampleList.size())) {
            cout << "Item " << itemName1 << " was not found!\n";
            break;
        }
    }
    count2 = 0;
    for (it2; it2 != exampleList.end(); it2++) {
        *it2;
        if (itemName2 == (*it2)) {
            cout << "Item " << itemName2 << " was found!\n";
            item2 = 1;
            break;
        }
        else
            count2++;
        if (count2 >= (exampleList.size())) {
            cout << "Item " << itemName2 << " was not found!\n";
            break;
        }
    }
    if ((item1 == 1) && (item2 == 1)) {
        cout << "Replacing!\n";
        exampleList.push_back(itemName1);
        exampleList.push_back(itemName2);
        (*it1) = exampleList.back();
        exampleList.pop_back();
        (*it2) = exampleList.back();
        exampleList.pop_back();
    }
    cout << "\n";
    system("pause");
    system("cls");
}
string proccessMenu(string input, list<string>& exampleList) {
    if (input == "1")
        addItem(exampleList);
    else if (input == "2")
        removeItem(exampleList);
    else if (input == "3")
        replaceItem(exampleList);
    else if (input == "4")
        printList(exampleList);
    else if (input == "5")
        return input;
    else {
        cout << "Invalid input!\n\n";
        system("pause");
        system("cls");
    }
    return 0;
}
Я ужасно с этими указателями обращаюсь, потому что их толком еще не изучал. Поэтому понять, почему вот такая ошибка не могу, помогите пожалуйста:
0
Миниатюры
Invalid null pointer  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2016, 11:00
Ответы с готовыми решениями:

string, invalid null pointer
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; #define SIZE...

Ошибка компиляции: invalid null pointer
Не могу понять, в чем проблема.. Кто знает? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Из-за чего может возникать следующая ошибка: "Invalid null pointer"?
NEBTELA* fggff; //указатель на объект базового класса fggff = new Zvezda; //переопределение в...

Invalid pointer operation
Добрый вечер. Возникает такая ошибка при выключении программы: invalid pointer operation. ...

3
492 / 374 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
03.01.2016, 15:07 2
https://www.cyberforum.ru/cpp-... 62479.html

Цитата Сообщение от meJevin Посмотреть сообщение
Так она работает:
Цитата Сообщение от meJevin Посмотреть сообщение
А так нет:
ты показал 150 строк кода а изменил где то наверно одну строчку, укажи в каких строчках ошибка выдели их как то...
0
159 / 151 / 92
Регистрация: 18.11.2015
Сообщений: 677
03.01.2016, 17:59  [ТС] 3
Цитата Сообщение от _Valera_ Посмотреть сообщение
одну строчку
В работающем экземпляре в int main() есть обработка ввода данных от пользователя. В неработающем - я заменил эту обработку на функцию. Вот так:
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
int main() {
    string input;
 
    list<string> Items;
    do {
        cout << "________________________________________________________________________________\n";
        cout << "                              LIST SIMULATOR 2016";
        cout << "\n________________________________________________________________________________";
        cout << "\n\n1. Add item\n2. Remove item.\n3. Replace items.\n4. Print list.\n5. Exit\n\n";
        cout << "Select the prefered option: ";
        cin >> input;
        if (input == "1")
            addItem(Items);
        else if (input == "2")
            removeItem(Items);
        else if (input == "3")
            replaceItem(Items);
        else if (input == "4")
            printList(Items);
        else if (input == "5")
            break;
        else {
            cout << "Invalid input!\n\n";
            system("pause");
            system("cls");
        }
    } while (true);
 
    return 0;
}
На это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
nt main() {
    string userInput;
 
    list<string> Items;
    do {
        cout << "________________________________________________________________________________\n";
        cout << "                              LIST SIMULATOR 2016";
        cout << "\n________________________________________________________________________________";
        cout << "\n\n1. Add item\n2. Remove item.\n3. Replace items.\n4. Print list.\n5. Exit\n\n";
        cout << "Select the prefered option: ";
        cin >> userInput;
        proccessMenu(userInput, Items);
        if (proccessMenu(userInput, Items) == "5")
            break;
    } while (true);
 
    return 0;
}
И вот функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string proccessMenu(string input, list<string>& exampleList) {
    if (input == "1")
        addItem(exampleList);
    else if (input == "2")
        removeItem(exampleList);
    else if (input == "3")
        replaceItem(exampleList);
    else if (input == "4")
        printList(exampleList);
    else if (input == "5")
        return input;
    else {
        cout << "Invalid input!\n\n";
        system("pause");
        system("cls");
    }
    return 0;
}
0
96 / 23 / 20
Регистрация: 17.09.2014
Сообщений: 1,322
03.01.2016, 19:10 4
А зачем string, если там 1 символ?
Поставь char
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2016, 19:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Invalid pointer addition
В чем ошибка ? hf=FindFirstFileW(L&quot;&quot;+Edit4-&gt;Text.c_str()+&quot;\\*.*&quot;, &amp;FindFileData); Код ошибки:...

Free(): invalid pointer
Здравствуйте. Пишу простой менеджер контактов (универ. лаба). Использую string и структуры. У...

invalid pointer operation
for (global_index1 = 0; global_index1 &lt; t-&gt;dir_list-&gt;Count; global_index1++) { ...

Null pointer
void C_StringBit :: setStrBit() { char* ptr1; cout &lt;&lt; &quot;Введите строку&quot;&lt;&lt; endl; cin &gt;&gt;...

Error in `./o': free(): invalid pointer
Здравствуйте Форумчане, я столкнулся с проблемой при создании проекта (если кратко: самый длинный...

Null pointer assignment
Помогите найти ошибку, при заполнении массива вручную в конце выдает - Null pointer assignment. ...


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

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

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