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

Alloca - это функция для распределения динамической памяти на стеке C. Такая память будет автоматически освобождена при выходе из функции.
25

Почему использование alloca() не считается хорошей практикой?

alloca() выделяет память в стеке, а не в куче, как в случае malloc(). Поэтому, когда я возвращаюсь из рутины, память освобождается. Итак, на самом деле это решает мою проблему освобождения динамически распределенной памяти. Освобождение памяти, выде...
19 июн. '09 в 16:24
2

Является ли alloca частью стандарта С++?

Является ли alloca частью стандарта С++?
23 февр. '10 в 13:11
3

Функция alloca в C

Я пересматривал C и сталкивался с функциями alloca/free, которые описываются как выделение хранилища в стеке как пространство. Это то же самое, что и malloc/free? или это что-то другое? Спасибо.
04 февр. '12 в 21:25
2

Какова цель линии% "alloca point", которая встречается в коде llvm?

Я смотрел на сборку LLVM, выпущенную llvm-gcc в последнее время, и я заметил повторяющееся утверждение, о котором я не уверен в его цели. Например, следующая программа C: int main(void) { void (*f)(void) = (0x21332); f(); } Когда скомпилиро...
21 авг. '09 в 3:39
2

Есть ли распределитель, который использует alloca и в противном случае совместим с С++ STL?

У меня есть два вопроса: 1) Возможно ли реализовать распределитель, который использует alloca для распределения памяти в стеке и в противном случае совместим с С++ STL? Если есть код, вы можете сделать меня счастливым, просто указав на URL.:-) Если...
02 нояб. '10 в 22:09
3

Является ли функция goto в функции alloca действительной?

Стандарт C запрещает goto в области функций, где существует VLA. VLA и вызов функции alloca должны иметь тот же результат на низком уровне. (Я мог ошибаться, поскольку я всего лишь C, а не программист на низком уровне, но в моем воображении, которы...
23 мая '14 в 7:22
2

Является ли хорошей практикой скрывать определение структуры в C?

Я думаю, что скрытие определения структуры делает код более безопасным, поскольку вы применяете с помощью компилятора, к которому никто из членов структуры не может получить доступ напрямую. Недостатком является то, что пользователи не могут объявлят...
15 дек. '15 в 22:14
6

Какая разница между alloca (n) и char x [n]?

В чем разница между void *bytes = alloca(size); и char bytes[size]; //Or to be more precise, char x[size]; void *bytes = x; ... где size - переменная, значение которой неизвестно во время компиляции.
10 апр. '10 в 19:02
2

alloc, malloc и alloca - Какая разница?

У меня создалось впечатление, что alloc в Objective-C (когда мы вызываем [anyObject alloc], на самом деле реализует функцию C malloc и память получает выделение в куче, но не может найти ответа на этот вопрос. Кроме того, при поиске alloc я нашел ...
21 сент. '15 в 0:50
2

Почему я могу перейти в область переменной 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; }...
02 июн. '17 в 15:29
3

Нарушение доступа при использовании alloca

Моя функция stackAlloc выглядит так: void* stackAlloc(size_t size) { if (size > maxStackAllocation) return malloc(size); else return _alloca(size); } void stackAllocFree(void *ptr, size_t size) { if (size > maxSta...
13 июн. '16 в 12:20
2

Является ли alloca полностью заменяемым?

Я прочитал довольно много мест, которые alloca устарели и не должны использоваться, и вместо этого следует использовать переменные длины массивов. Мой вопрос таков: Является ли alloca полностью заменяемым массивами переменной длины? В моем конкре...
15 авг. '10 в 19:12
2

Можно ли перераспределить память alloca()?

Память, выделенная malloc может быть перераспределена с помощью realloc. Есть ли подобная функция для alloca? Перераспределение стековой памяти может быть полезно, когда вы не хотите, чтобы память выделялась в куче, и вам нужно выделять переменную с...
31 мая '19 в 10:05
4

Как компилировать GCC без _alloca?

По какой-то причине я должен использовать gcc для компиляции файла C, а затем ссылку на проект Visual С++ 2008. (Я использовал последнюю версию gcc: cygwin gcc 4.3.4 20090804.) Но есть одна проблема: gcc всегда выделяет большой массив с _alloca, и...
27 февр. '10 в 16:59
3

Это хорошая причина для использования alloca?

У меня есть следующая функция: double neville (double xx, size_t n, const double *x, const double *y, double *work); который выполняет интерполяцию Лагранжа в xx, используя точки n, хранящиеся в x и y. Массив work имеет размер 2 * n. Так как эт...
30 апр. '13 в 18:43