Вопросы по теме 'alloca'

Какова цель строки точки %alloca, которая встречается в коде llvm?
В последнее время я просматривал некоторые сборки LLVM, созданные llvm-gcc, и заметил повторяющееся утверждение, назначение которого я не уверен. Например, следующая программа на C: int main(void) { void (*f)(void) = (0x21332); f(); }...
1048 просмотров
schedule 21.06.2022

В каких случаях alloca() полезен?
Зачем вам вообще использовать alloca(), когда вы всегда можете выделить в стеке буфер фиксированного размера, достаточно большой для всех целей? Это не риторический вопрос...
842 просмотров
schedule 01.06.2023

Является ли alloca полностью заменимым?
Я читал довольно много мест, где alloca устарел и не должен использоваться, и вместо этого следует использовать массивы переменной длины. Мой вопрос таков: можно ли полностью заменить alloca массивами переменной длины? В моем конкретном...
2792 просмотров
schedule 25.05.2023

alloca функция в C
Я пересматривал C и наткнулся на функции alloca/free, которые описываются как выделение памяти в стеке, подобном пространству. Это то же самое, что malloc/free ? или это что-то другое? Спасибо.
9604 просмотров
schedule 22.04.2023

Динамически выделяемая память стека с областью действия класса
Некоторые компиляторы поддерживают расширения C++, позволяющие динамически выделять память в стеке. Например, g++ поддерживает alloca() , а также VLA. Все эти расширения поставляются с оговоркой, что динамически выделяемая память «освобождается»...
254 просмотров

ошибка поиска символа: неопределенный символ: _alloca
Я создаю общий объект (.so), который внутри использует функцию _alloca() (определенную в malloc.h). Этот .so компилируется плавно. Но как только я вызываю функцию, использующую _alloca(), мое приложение вылетает с выводом на консоль symbol...
435 просмотров
schedule 31.08.2022

Почему я могу перейти в область действия переменной alloca:d, но не массива переменной длины?
См. эту тестовую программу: #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { if (argc < 2) goto end; char s[strlen(argv[1]) + 1]; strcpy(s, argv[1]); printf("s=%s\n", s); end: return 0; }...
147 просмотров

Выделить в стеке выровненную память, например _alloca
В документации для _alloca() написано здесь : Подпрограмма _alloca возвращает пустой указатель на выделенное пространство, которое гарантированно будет соответствующим образом выровнено для хранения любого типа объекта. Однако здесь...
1931 просмотров
schedule 27.10.2022

Возвращает ли alloca() память при возникновении исключения?
Я поддерживаю устаревшее приложение C++, которое, похоже, имеет медленную утечку памяти. Мне удалось «исправить» утечку памяти, обеспечив, чтобы текущая конфигурация больше не вызывала никаких исключений, и я также могу вызвать утечку и...
132 просмотров
schedule 05.11.2023

Попытка понять реализацию функции alloca() в сборке на x86
Я новичок в ассемблере и сейчас читаю книгу под названием Reverse Engineering for Beginners и добрался до той части, где говорится о распределении памяти в стеке. Я понимаю (я думаю) концепцию распределения стека, но в примере было что-то, чего я...
64 просмотров
schedule 10.07.2023

Если мне нужен глобальный VLA, могу ли я использовать alloca() в основной функции?
У меня есть функция main для моего приложения, и я выделяю, например, пути к файлам конфигурации и т. д. В настоящее время я использую для них malloc , но они никогда не освобождаются и всегда доступны для использования в течение всего времени...
60 просмотров
schedule 15.03.2023