Очередная лажа
Если при отладке printf("%d", _msize(malloc(0))); выдаёт 0, то при релизной сборке появляется 1!!!
И ещё так же при отладке getchar(); работает нормально, а при релизе приложение сразу дохнет!!!
Всё это происходит в Visual C++.NET!!!
Кто мне сможет объяснить следующее?
Если при отладке printf("%d", _msize(malloc(0))); выдаёт 0, то при релизной сборке появляется 1!!!
И ещё так же при отладке getchar(); работает нормально, а при релизе приложение сразу дохнет!!!
Всё это происходит в Visual C++.NET!!!
Ничего странного, ведь при отладке вместо malloc и _msize используются _malloc_dbg и _msize_dbg, так что результат может быть совсем другим.
Ничего странного, ведь при отладке вместо malloc и _msize используются _malloc_dbg и _msize_dbg, так что результат может быть совсем другим.
Странность в том, что релизные функции выдают абсолютно неприемлимые результаты!!!
Лично мне пришлось переколбашивать всю прогу, чтоб найти где у меня "ошибка"!!! А ошибкак в очередной раз оказалась не у меня!!!
Странность в том, что релизные функции выдают абсолютно неприемлимые результаты!!!
Лично мне пришлось переколбашивать всю прогу, чтоб найти где у меня "ошибка"!!! А ошибкак в очередной раз оказалась не у меня!!!
Может, ты в очередной раз сгущаешь краски?
В чем же заключалась ошибка?:D
Может, ты в очередной раз сгущаешь краски?
В чем же заключалась ошибка?:D
Ошибка в том, что _msize(malloc(0)) должен выдавать не единицу, а ноль!!!
А getchar() не должен вызывать ошибку!!!
Причём у меня в проекте в параметрах линкера выставлено, чтоб все функции брались из DLL'ок, а не в EXE'шник вшивались!!!
Но даже если всё в EXE'шнике будет, то _msize(malloc(0)) всё равно единицу выдаёт, а getchar() работает нормально!!!
Чтоб не возникало вопросов выкладываю свой проект!!!