|
Ну есть же стандартные Си-функции calloc malloc free для операций по манипуляциям с памятью. Тем более, что Вы готовы жертвовать быстродействием (и размером памяти программ?). Все таки насчет локальных переменных: по-моему Вы до конца не понимаете механизм segment overlapping - данные стараются упаковать как можно плотнее и использовать повторно те участки, которые можно. Если у Вас со стандартным data overlapping проблемы с количеством памяти, то использование менеджера кучи эти проблемы не решит имхо. Если Вы вызываете три функции друг из друга и каждой надо массив по 64 байт, то Вам по любому надо отдать 3*64 = 192 байта памяти. И никакое стековое хранение не сделает эту цифру меньше. Если же эти же самые три функции вызываются из разных мест программы и никогда друг из друга, то все три массива будут размещаться физически в одной и той же области памяти. И Вы затратите только 64 байта.
Может быть у Вас какие-то другие соображения по этому поводу?
E-mail: info@telesys.ru