Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передал ссылкой длину/указатель,но new им брезгует, непонятки при выделеини памяти  
:(
    Опции темы
neosapient
  Дата 14.4.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



Вот код на коленке написаный...
Давно так пишу - проблем не было. Но вдруг при отладке дебагер VC7 стал ругаться 
Код

void func (unsigned char*& pBuff, int& iBuff)
{
pBuff = new unsigned char [iBuff];
}


void main(void )
{
unsigned char* pMyBuff;
int iMyBuff = 5;
func (pMyBuff,iMyBuff);
}



Кароче, VC7 сначала начила ставить зеленый триугольник напротив строки
pBuff = new unsigned char [iBuff];
И заодно ругаться про обращение по нулевому указателю


Затем через несколько Clear_Solution<->Rebild_Solution VC7 попросило найти файл "\Vc7\crt\src\newaop.cpp"

И теперь при трассировки ошибки я попадаю в этот файл
Код

 #if !_VC6SP2 || _DLL
void *__cdecl operator new[](size_t count) _THROW1(std::bad_alloc)
    {    // try to allocate count bytes for an array
    return (operator new(count));
    }
 #endif /* !_VC6SP2 || _DLL */


На строке return (operator new(count)); происходит вызов в файл strlen.asm где в функции за меткой 

Код

main_loop:
        mov     eax,dword ptr [ecx]     ; read 4 bytes


вылезает ошибка обращения по нулевому адресу так как параметр ecx имеет нулевое значение


Это сообщение отредактировал(а) neosapient - 14.4.2007, 16:28
PM MAIL   Вверх
Sartorius
Дата 14.4.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



 Читать до конца не стал...
func (iMyBuff,pMyBuff); - перепутан порядок аргументов 
int iMyBuff; - мусор в переменной
PM MAIL ICQ   Вверх
archimed7592
Дата 14.4.2007, 14:43 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



во вторых, iMyBuff не хай бы инициализировать smile

Добавлено через 44 секунды
эээ... не дочитал до конца пост Sartorius smile 


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
neosapient
Дата 14.4.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



Это не те ошибки, подправил то, что было написано "на коленке"
PM MAIL   Вверх
Sartorius
Дата 14.4.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



 у меня работает без ошибок...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.