Все уже указали на большую вещь, которая заключается в потенциальном неопределенном поведении из-за переполнения стека, но я должен отметить, что в среде Windows есть отличный механизм, чтобы уловить это, используя структурированные исключения (SEH) и защитные страницы. Поскольку стек увеличивается только по мере необходимости, эти защитные страницы находятся в незанятых областях. Если вы выделяете их (переполняя стек), возникает исключение.
Вы можете поймать это исключение SEH и вызвать _resetstkoflw, чтобы сбросить стек и продолжить свой веселый путь. Это не идеально, но это еще один механизм, по крайней мере, знать, что что-то пошло не так, когда вещи попадают в фанат. * У nix может быть что-то похожее, чего я не знаю.
Я рекомендую ограничить ваш максимальный размер выделения, обернув alloca и отслеживая его внутри. Если бы вы были действительно хардкорны в этом, вы могли бы добавить некоторые области видимости в верхнюю часть вашей функции, чтобы отслеживать любые выделения alloca в области действия функции, и здравый смысл сравнивает это с максимальной суммой, допустимой для вашего проекта.
Кроме того, помимо предотвращения утечек памяти, alloca не вызывает фрагментацию памяти, что довольно важно. Я не думаю, что alloca - плохая практика, если вы используете ее разумно, что в принципе верно для всего. : -)
Для SQL 2005 удалите файл:
C: \ Documents and Settings \
Для SQL 2008 расположение, формат и имя файла изменены:
C: \ Documents and Settings \
Как очистить список:
Этот запрос зарегистрирован в Microsoft Connect
В стандарте Windows Server 2008 с SQL Express 2008 файл «SqlStudio.bin» находится здесь:
%UserProfile%\Microsoft\Microsoft SQL Server\100\Tools\Shell\
Из командной строки (Пуск \ Все программы \ Стандартные \ Командная строка):
DEL /S SqlStudio.bin
For Windows Vista and SQL Server 2005,
Delete this file, or open it with the Notepad and clear the server names that you want Clear from the history
%UserProfile%\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat
Файл SqlStudio.bin на самом деле содержит двоичные сериализованные данные типа «Microsoft.SqlServer.Management.UserSettings.SqlStudio».