Автор: GeorgeIV (19.12.2008 в 10:03)
насчёт стека думаю это та память которая встроена в сам процессор,
вообще не очень понимаю отличается-ли то где будет размещено содержимое переменной
взависимости от того просто-ли её объявили как char var[123] или использовали var = new char[123],
думаю только что те строки что написаны в коде программы и не изменяются наверное лучше как
static char *str='123' |
Этот кусок показывает, что у вас еще каша в голове по сям.
Если очень упрощенно, стэк принадлежит только данной программе и разрушается вместе с ней. Созданное на стеке самому уничтожать не надо. Так создаются все локальные переменные.
Общая память (куча,heap) принадлежит всем и именно в ней создаются динамические объекты, и то, что вы там создали в сях надо уничтожать самому, иначе возникает утечка памяти.
Варианты с _ появились с введением микрософтом "безопасных" функций, которые позволяют, например, не допустить переполнения буфера. Также существуют функции с _, кторые в зависимости от установок среды работают с типом TCHAR как с char или как с wchar_t.
Если строка не изменяется, и вообще какой то объект, лучше его объявлять как const. Поведение квалификатора static зависит еще от того, в каком месте он использован.
Но это лучше все читать в спецлитературе, MSDN всегда должен быть под рукой, в нем есть все ответы.