0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
||||||
1 | ||||||
Память не может быть "written"29.04.2009, 20:14. Показов 10393. Ответов 23
Метки нет (Все метки)
Помогите найти ошибку в следующем коде:
На этапе вхождения в функцию "vvod_vseh", а именно при вводе первой фамилии - выскакивает ошибка памяти. "Память не может быть written." Как исправить?
0
|
29.04.2009, 20:14 | |
Ответы с готовыми решениями:
23
Память не может быть прочитала Память не может быть прочитана! По каким причинам память не может быть выделена динамически? Ошибка "Память не может быть read" инструкция по адресу 0x7c91ac4a обратилась к памяти по адресу 0x00000010.Память не может быть written |
121 / 121 / 14
Регистрация: 14.03.2009
Сообщений: 462
|
|||||||||||
29.04.2009, 20:19 | 2 | ||||||||||
0
|
14 / 10 / 1
Регистрация: 28.04.2009
Сообщений: 219
|
|
29.04.2009, 20:26 | 3 |
Прежде чем с объектом (структурой) работать, надо ж его создать...
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
||||||
29.04.2009, 20:27 [ТС] | 4 | |||||
А это я его не создал?
0
|
14 / 10 / 1
Регистрация: 28.04.2009
Сообщений: 219
|
|
29.04.2009, 20:31 | 5 |
Представляете ? - нет !!!
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
||||||||||||||||
29.04.2009, 20:34 [ТС] | 6 | |||||||||||||||
И если
Так же как и первый совет: Если вызов заменить на
По моему ты ошибаешься. Я объявил структуру. Все функции работают, кроме этой.
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
|
29.04.2009, 20:38 [ТС] | 7 |
Ладно, раз никто не знает придется разбираться самому.
0
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
29.04.2009, 21:15 | 8 |
Объявление структуры - это фактически объявление типа.
abonent *p=0; - указатель,т.е переменная размером 4 байта(на 32 разрядной платформе). Обращение к структуре по такому указателю будет некорректным - память,на которую он указывает, может быть занята кем и чем угодно.Объявлять следует так: abonent p; а потом делать vvod_vseh(&p...ну тут что там еще было); К стати,ультратор дело говорит,хоть и не очень вежливо. Вам же стоит почитать основы языка.
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
|
29.04.2009, 21:16 [ТС] | 9 |
0
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
29.04.2009, 21:25 | 10 |
Стоп.Зачеркнуть выше сказанное.Я тут посмотрел на программу. Видимо, имеется ввиду массив абонентов. Тогда объявлять нужно все же указатель. Но перед vvod_vseh вызвать new,чтобы выделить память нужного размера.
Код
abonent *p=0; ......тут вводим n p = new abonent[n]; ....дальше как было. Разве мы с вами работаем в ДОСе? В защищенном режиме вектор прерываний не обязан там находиться.
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
|
29.04.2009, 21:50 [ТС] | 11 |
Спасибо. Сделал. Теперь ошибка памяти в vivod'е.
Добавлено через 23 минуты 10 секунд Не хочет считывать номер. Когда дело доходит до ввода номера но это просто игнорирует и сразу требует ввести год. Хоть ты тресни. Я уже всё менял - бесполезно. Отсюда и ошибка в выводе - поле с пустыми значениями номера. Помогите!
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
29.04.2009, 22:46 | 12 |
слушай у тя стоко ошибок в коде
если ты выводешь инт,то надо использовать "%d" а не "%s" потом вот ты объявил указатель struct type* p=NULL; то надо выделить под него память,
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
||||||
29.04.2009, 22:48 [ТС] | 13 | |||||
Блин. Идиотизм, нельзя отредактировать первый пост.
Вот новый код. Не хочет считывать nomer:
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
29.04.2009, 22:51 | 14 |
и почему ты используешь сомнительные функции,юзай обычный scanf
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
|
29.04.2009, 22:53 [ТС] | 15 |
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
29.04.2009, 23:01 | 16 |
ясно,так вот номер не вводится потому,что функция скан должна принимать указатель
0
|
0 / 0 / 0
Регистрация: 17.08.2008
Сообщений: 14
|
|
29.04.2009, 23:05 [ТС] | 17 |
Вообще-то она его и принимает. 52-59 строки. Там и год и фамилия принимается оператором scanf. А номер приниматься не хочет. Это просто чудеса...
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
29.04.2009, 23:08 | 18 |
сорри описался
Добавлено через 30 секунд не знаю у меня принимается
0
|
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
|
||||||
29.04.2009, 23:08 | 19 | |||||
0
|
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
|
|||||||||||
29.04.2009, 23:10 | 20 | ||||||||||
1
|
29.04.2009, 23:10 | |
29.04.2009, 23:10 | |
Помогаю со студенческими работами здесь
20
Память не может быть read Память не может быть read. GDI Ошибка: память не может быть read Память не может быть Read, Почему так ??? Ошибка: память не может быть "read" Посоветуйте функцию для с++ для ОС Windows7 которая может просить память из кучи она должна быть ниже new или maloc Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |