Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 2 (https://www.otvetnemail.ru/novyj-arhiv-2-812/)
-   -   Строки в стеке или в куче ? (https://www.otvetnemail.ru/novyj-arhiv-2-812/stroki-v-steke-ili-v-kuche-256275/)

Guest 28.09.2011 15:49

Строки в стеке или в куче ?
 
В классе My имеются символьные массивы в стеке.Далее символьная строка (тип char) присваивается QString.КодC++ (Qt)char buffer[2048];char bufLoad[1024];char bufBig[1024 * 200];QString str = QString(*buffer);Как известно, существует опасность падения программы(на 20-й раз, 30-й, ...), поскольку строки большие > 200 КБ, пару строк и достигли 1MБ (предел для стека).Рекомендуют больше 1 КБ в стек не ложить.Решил в классе My выделить память в куче (т.е. создать динамические массивы).КодC++ (Qt)char *s;s = new char[1024 * 200];Уже лучше и риск меньше !Вопросы:1) Строка (тип QString) увеличивает память в стеке ?2) Под эту строку тоже отводится 200K, есть ли тут риск ?


Часовой пояс GMT, время: 09:04.


© www.otvetnemail.ru - Форум вопросов и ответов.