Здравствуйте alfarn, вы писали:
A>Чем отличается размещение в стеке от размещения в куче? A>В каких случаях где лучше размещать? A>Влияет ли это на размер программ и быстродействие или на что-нибудь ещё?
Хотелось бы посмотреть, что Вы под этим подразумеваете. Два кода: однин с выделением
памяти на куче, другой на стеке.
На размер на диске не влияет точно.
Отличия. Раз мы уже о С/С++ говорим, то в стеке хранятся все локальные переменные.
При входе в область видимости место выделяется, при выходе освобождается.
На куче, ты делаешь все сам, явно говоришь, когда выделлять место, когда освобождать.
От сюда все различия и разница в использовамии.
Не понятен вопрос: "в каких случаях где лучше размещать?"
Как-то никогда с ним не сталкивался. Приведите, плиз, пример, где
над этим стоит поразмышлять?
Проблемы с выделением памяти в стеке могут возникнуть в виде переполнения стека.
void f(int i){
if (i==0) return;
char a[100000];
f(i-1);
}
Вызов f(10000) может легко переполнить стек.(если компилятор не выкинет ненужный код).
Других проблем я не вижу.