а он там нужен по твоему? или ты хотел типа подловить на том что я не знаю что он на куче выделяет
зачем подлавливать? мне просто интересно, про что ты говоришь? Про динамические массивы? И как ты их на стеке реализуешь? Мне это непонятно. Или всё-же ты о статических массивах? Тогда непонятно, как ты их без размера делаешь?
Понятно, тогда я неправильно понял тот пост. К тому же только начал осваивать работу с векторами и не знал, что конструкция вида vec = {«one», «two», «three»}; применима и для векторов, я думал что в них только push_back, собственно по этому и написал конвертацию с массива в вектор. Гхм, спасибо за разъяснение, а то я действительно тут в проге конвертил массивы в вектор :D
и что? Она умеет изменять размер массива? А как ты без изменения push реализуешь?
(не забудь о том, что тот вариант, который можно юзать с кучей(выделить новый большой кусок, и скопировать туда старый) у тебя тут не пройдёт - проблема в том, что нехватка может возникнуть внутри функции, а alloca не умеет в этом случае удалять и создавать массивы, которые созданы выше функции. Т.е. если ты внутри функции выделишь новый массив, он будет уничтожен при выходе, и вызывающая функция либо рухнет, либо будет юзать старую копию)
Я тебе и не писал за то что она может изменять размер массива. Я тебе только писал что она динамически выделяет память на стеке и она сама убъется если закончится скоп.
Т.е. если ты внутри функции выделишь новый массив, он будет уничтожен при выходе, и вызывающая функция либо рухнет, либо будет юзать старую копию)
массив просто сдохнет, ничего не рухнет и никаких старых копий, главное чтобы стек не «лопнул»
что проверять? прикажешь мне push на массиве в стеке организовать? дык я уже сказал - я не знаю как. Если ты знаешь - рассказывай или код давай.
ты же обещал:
указывать не будешь размеры и остальную хрень которая тебя напрягает.
вот меня и напрягает тот факт, что размер жёстко фиксирован, и его никак не изменить. Даже внутри функции я не могу удалить массив, что-бы сделать новый побольше. Потому массивы в стеке хуже управляются, чем обычные в куче. Для последних есть REALLOC и можно их удалять в любой момент. Даже внутри внутренней функции.
Я отвечал именно на комментарий drBatty о том, что сишные массивы полноценно заменяются vector и array. Второй из них нефига не динамический и (естественно) тоже без пуш_бека.