Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Очередная лажа

2.1K
08 апреля 2004 года
Stanky
48 / / 06.12.2003
Кто мне сможет объяснить следующее?

Если при отладке printf("%d", _msize(malloc(0))); выдаёт 0, то при релизной сборке появляется 1!!!
И ещё так же при отладке getchar(); работает нормально, а при релизе приложение сразу дохнет!!!

Всё это происходит в Visual C++.NET!!!
461
09 апреля 2004 года
gerard
102 / / 20.12.1999
Цитата:
Originally posted by Stanky
Кто мне сможет объяснить следующее?

Если при отладке printf("%d", _msize(malloc(0))); выдаёт 0, то при релизной сборке появляется 1!!!
И ещё так же при отладке getchar(); работает нормально, а при релизе приложение сразу дохнет!!!

Всё это происходит в Visual C++.NET!!!


Ничего странного, ведь при отладке вместо malloc и _msize используются _malloc_dbg и _msize_dbg, так что результат может быть совсем другим.

2.1K
09 апреля 2004 года
Stanky
48 / / 06.12.2003
Цитата:
Originally posted by gerard

Ничего странного, ведь при отладке вместо malloc и _msize используются _malloc_dbg и _msize_dbg, так что результат может быть совсем другим.



Странность в том, что релизные функции выдают абсолютно неприемлимые результаты!!!
Лично мне пришлось переколбашивать всю прогу, чтоб найти где у меня "ошибка"!!! А ошибкак в очередной раз оказалась не у меня!!!

3
09 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Stanky

Странность в том, что релизные функции выдают абсолютно неприемлимые результаты!!!
Лично мне пришлось переколбашивать всю прогу, чтоб найти где у меня "ошибка"!!! А ошибкак в очередной раз оказалась не у меня!!!



Может, ты в очередной раз сгущаешь краски?
В чем же заключалась ошибка?:D

2.1K
09 апреля 2004 года
Stanky
48 / / 06.12.2003
Цитата:
Originally posted by Green


Может, ты в очередной раз сгущаешь краски?
В чем же заключалась ошибка?:D



Ошибка в том, что _msize(malloc(0)) должен выдавать не единицу, а ноль!!!

А getchar() не должен вызывать ошибку!!!

Причём у меня в проекте в параметрах линкера выставлено, чтоб все функции брались из DLL'ок, а не в EXE'шник вшивались!!!

Но даже если всё в EXE'шнике будет, то _msize(malloc(0)) всё равно единицу выдаёт, а getchar() работает нормально!!!

Чтоб не возникало вопросов выкладываю свой проект!!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог