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

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

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

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

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

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

Функция alloca в C

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

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

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

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

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

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

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

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

Я думаю, что скрытие определения структуры делает код более безопасным, поскольку вы применяете с помощью компилятора, к которому никто из членов структуры не может получить доступ напрямую. Недостатком является то, что пользователи не могут объявлят...
16 дек. '15 в 1: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 в 22:02
2 отв.

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

У меня создалось впечатление, что alloc в Objective-C (когда мы вызываем [anyObject alloc], на самом деле реализует функцию C malloc и память получает выделение в куче, но не может найти ответа на этот вопрос. Кроме того, при поиске alloc я нашел ...
21 сент. '15 в 3: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 в 18: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 в 15:20
2 отв.

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

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

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

По какой-то причине я должен использовать gcc для компиляции файла C, а затем ссылку на проект Visual С++ 2008. (Я использовал последнюю версию gcc: cygwin gcc 4.3.4 20090804.) Но есть одна проблема: gcc всегда выделяет большой массив с _alloca, и...
27 февр. '10 в 19: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 в 21:43
1 отв.

Фиксированный размер массива vs alloca (или VLAs)

Когда alloca() предпочтительнее память, выделенная в стеке, объявляя массив фиксированного размера? Подробнее: Как мы знаем, alloca() спорная функция. Используется безрассудно, это может вызвать переполнение стека. Используемый разумно, он может с...
03 окт. '16 в 23:27