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

Ошибка Access violation при передаче указателя в функцию - C++

Войти
Регистрация
Восстановить пароль
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
30.10.2015, 00:04     Ошибка Access violation при передаче указателя в функцию #1
выделяю память для нужд програмных и соханяю его.
C++
1
2
char *resadres =(char*) VirtualAlloc (0, 50000, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
char *wresadres = resadres;
вызываю вот так функцию записи в эту выделенную память.
и все работает нормально. в ней я НЕ изменяю resadres.

C++
1
2
3
4
crresult(stp1, pcnds, &wpcnds, resadres, &wresadres, fname);
//вот ее объявление
void crresult(statep &stp1, char *pcnds, char **wpcnds, char *resadres, char **wresadres, char *fname)
{}
после этого я вызываю еще одну функцию она записывает из выделенной памяти данные в файл
C++
1
2
3
4
writecrresbuffer(resadres, &wresadres, fname);
//вот ее объявление
void writecrresbuffer(char *resadres, char **wresadres, char *fname)
{}
у меня в функции writecrresbuffer() в отладчике Visualstudio при проверке веделенной памяти на появление символа
появляется ошибка.
First-chance exception at 0x00C930B9 in testprojce.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC.
If there is a handler for this exception, the program may be safely continued.
я начал проверять с начала веделенной памяти и почти сразу появилась это ошибка на 5-10 итерации, я нигде не менял указатель resadres и он всегда указаывает наначало выделенной памяти.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 00:04     Ошибка Access violation при передаче указателя в функцию
Посмотрите здесь:

Ошибка при добавлении TSeries: Access Violation C++ Builder
C++ Ошибка Access Violation при записи
Ошибка при передаче двумерного массива в функцию C++
Ошибка при передаче двумерного массива в функцию std::thread C++
C++ Ошибка при передаче в функцию
C++ Где ошибка в передаче указателя на массив?
Порча указателя при передаче в функцию C++
C++ Ошибки преобразования при передаче указателя на функцию
C++ Ошибка при передаче двумерного массива в функцию
C++ Builder Ошибка Access Violation при использовании vector внутри класса
C++ Ошибка при передаче параметра в функцию
Access violation при выводе массива через функцию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
30.10.2015, 06:58     Ошибка Access violation при передаче указателя в функцию #2
Может за границу области выходишь? А для чего wresadres и почему VirtualAlloc()?
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
30.10.2015, 12:25  [ТС]     Ошибка Access violation при передаче указателя в функцию #3
nmcf, нет в том то и дело что не выхожу, нигде не меняю указатель он всегда указывает на выделенный буфер памяти на его начало если точно.
Цитата Сообщение от nmcf Посмотреть сообщение
А для чего wresadres
wresadres это для сохранения указателя resadres, вот как выглядит этот код.
C++
1
2
3
*wresadres = resadres;
while(**wresadres!='\0')
{   *wresadres++; i++; }
и где то на 5 итерации происходит эта ошибка, еще очень далеко до конца выделенно фрагмента.

Добавлено через 5 минут
Цитата Сообщение от nmcf Посмотреть сообщение
почему VirtualAlloc()
использовал функцию malloc(); результат тот же.
Yandex
Объявления
30.10.2015, 12:25     Ошибка Access violation при передаче указателя в функцию
Ответ Создать тему
Опции темы

Текущее время: 07:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru