Описание тега static-allocation

1 ответ

Оценка объема памяти и использования процессора для библиотеки C

У меня есть статическая библиотека, написанная на C, без динамического выделения памяти. До сих пор библиотека использовалась только в приложении для обычного i386 Linux, где было много процессора и памяти. Теперь мне нужно попытаться создать версию…
1 ответ

Память C++, выделенная во время компиляции

Я читал, что хотя динамическая память выделяется в куче во время выполнения, статическая память выделяется в стеке во время компиляции, поскольку компилятор знает, сколько памяти должно быть выделено во время компиляции. Рассмотрим следующий код: in…
15 июн '15 в 14:26
1 ответ

Что означает "статически размещенный" именно в libc? Один на экземпляр библиотеки? Один на экземпляр программы?

В (g)libc, например, в функциях времени и даты, таких как местное время, в руководстве говорится: Возвращаемое значение указывает на статически размещенную строку, которая может быть перезаписана последующими вызовами любой из функций даты и времени…
4 ответа

Возвращение c_str из функции

Это из небольшой библиотеки, которую я нашел в Интернете: const char* GetHandStateBrief(const PostFlopState* state) { static std::ostringstream out; // ... rest of the function ... return out.str().c_str() } В моем коде я делаю это: const char *d = …
17 апр '10 в 04:03
2 ответа

Разница между динамическим распределением статического выделения

Мой вопрос: в каком языке программирования динамическое выделение памяти быстрее, чем статическое? int main(int, char**) { int *pa = new int; // faster than int a; // ? return 0; }
29 авг '14 в 09:32
5 ответов

Можно ли увеличить размер статически размещенного массива?

Я знаю, что возможно увеличить размер динамически размещаемого массива. Но можно ли увеличить размер статически размещенного массива? Если да, то как? РЕДАКТИРОВАТЬ: Хотя этот вопрос предназначен для языка C, рассмотреть другие языки тоже. Это возмо…
05 ноя '09 в 04:33
3 ответа

Где будет выделена память в следующем фрагменте кода?

Если я объявлю std::vector<A *>где будет выделяться память? я знаю new динамически выделяет память, но память для вектора должна выделяться статически. Я хочу знать, что происходит с памятью. typedef std::vector<A *> AArray; void myFunct…
0 ответов

Статическое распределение и распределение стека в дизайне компилятора

Я не ясно о том, было ли статическое и стек размещения? Является ли статическое распределение статическим и динамическое распределение стека? Тогда к чему относится распределение кучи? Как с этим связана запись активации? Я думал, что запись активац…
1 ответ

Размер составного литерального массива

Я пытаюсь статически выделить некоторые структуры, каждая из которых содержит два члена: указатель на массив структур и размер этого массива. Вот рабочая версия кода: #define ARRAY_SIZE(x) (sizeof((x)) / sizeof((x)[0])) struct conf_element { char *k…
2 ответа

Ошибка сегментации при вызове функции с двумерным массивом

У меня есть следующий код: #define MAXSAMPLES 1024 typedef int sample_t; typedef sample_t sub_band_t[MAXSAMPLES][MAXSAMPLES]; void blah(sample_t a[][MAXSAMPLES], int u0, int v0, int u1, int v1) { . . . . } int main(int argc, char *argv[]) { sub_band…
25 мар '13 в 10:36
2 ответа

Mmap против статического выделения для больших выделений

Я выделяю довольно большой, примерно 100 ГБ, кусок памяти. Точный размер всегда известен во время компиляции. Должен ли я распределять статически? static char data[DATA_SIZE]; Или используя mmap? data = mmap(NULL, DATA_SIZE, PROT_READ|PROT_WRITE, MA…
03 янв '14 в 07:27
2 ответа

Гарантируется ли линейное распределение под-массивов?

Я знаю, что этот ответ нарушает reinterpret_cast правила, но это также предполагает, что под-массивы будут размещены линейно. Я полагал, что это не гарантировано, но, когда я ищу стандарт, я чувствую, что моя уверенность колеблется. Если я статическ…
8 ответов

C++: Почему статически созданная переменная может быть передана функции, ожидающей ссылку?

Я давно программирую на C++, но, конечно, не буду называть себя экспертом. Этот вопрос не задают, чтобы решить практическую проблему, которая у меня есть, это больше о понимании того, что делает C++. Представьте, что у меня есть функция, которая ожи…
3 ответа

Указатель на массив Вести счетчик элементов

У меня есть интерфейс, который наследует несколько классов. class someInterface { virtual void someMethod() = 0; } class A : public someInterface { public: void someMethod() { //Do something } } class B : public someInterface { public: void someMeth…
19 ноя '14 в 16:11
2 ответа

Понимание базового примера динамического размещения

У меня есть очень базовый довод в отношении динамического распределения. Изучая дерево в соответствии с возможными синтаксисами, я сказал, что все они являются динамическими распределениями. Первый: int* px(nullptr); px = new int; *px =20; Тогда бол…
1 ответ

c 2d статическая инициализация массива с сохраненным размером

Аналогично объявлению массива 1D: char arr[]={[0 ... RESERVED_CHARS-1]=' ',[RESERVED_CHARS]='\0'}; Посоветуйте, пожалуйста, как / если возможно объявить такой 2D массив? #define SAY_MAX_MSG_LEN 6 #define REP_MAX_MSG_LEN 8 char *var_msg_out[][3]={\ {…
06 сен '14 в 11:52
3 ответа

Переменные в стеке "статически распределены"?

Я читал эту статью и увидел следующее: "В этой статье предполагается, что вы уже знаете и понимаете, по крайней мере, в основном, как работает карта памяти в системе GNU/Linux, и особенно разница между памятью, статически выделяемой в стеке, и памят…
1 ответ

Инкрементный указатель на статический выделенный массив

На сколько увеличивается указатель в этих ситуациях и почему? void f(int a[]) { a++; printf("%d", *a); } void g(int a[][M]) { a++; printf("%d", *a[0]); } Допустим, что в main У меня есть статический распределенный массив с n элементами и статическая…
13 май '15 в 20:10
1 ответ

Можно ли создать статически размещенный массив в Swift?

Я хочу создать структуру в Swift, которая имеет небольшое фиксированное количество значений (скажем, 16 с плавающей запятой) в качестве данных экземпляра. Требуется, чтобы эта структура не сохраняла эти значения в куче, чтобы адрес экземпляра структ…
11 июл '16 в 03:58
3 ответа

Почему объекты Objective-C должны быть динамически размещены?

Почему объекты Objective-c должны размещаться динамически? Почему я должен сделать его указателем на объект, в отличие от C++, я могу создавать их в стеке? Благодарю.