Здравствуйте, NordWest, Вы писали:
NW>Здравствуйте, Draqon, Вы писали:
D>>Здравствуйте, NordWest, Вы писали:
NW>>>Почему постоянно возникают проблеммы с удалением строк?
NW>>>Вот такой код, например:
NW>>> char *zero1; NW>>> zero1 = new char[32];
NW>>>...
NW>>>free(zero0);
NW>>>На free вылетает ошибка: NW>>>" NW>>>Debug Assertion Failed!
NW>>>Program:....exe NW>>>File: dbgheap.c NW>>>Line: 1252
NW>>>Expression: _CrtIsValidHeapPointer(pUserData) NW>>>... NW>>>Abort|Retry|Ignore NW>>>"
D>>Если имелось в виду free(zero1), то его надо удалять с помощью delete[], т.к. он был выделен через new[].
NW>Да, это имелось в виду, но с delete тоже не каитит. По началу-то и было у меня везде delete в таких случаях, но отчего-то они приводили к таким ошибкам. По разному попробовал и при использовании free и подборе длины массива char при создании получалось обходить эту ошибку. Но так срабатывает не всегда и ладно, если это происходит не в часто вызываемых функциях, а если нет, то при постоянном вызове память, используемая приложением растет и растет.