Вопросы с тегом 'dynamic-memory-allocation'

Динамическое распределение памяти, обычно в контексте языков без сбора мусора или обязательного или автоматического подсчета ссылок, относится к процессу или запрашивает операционную систему для блока памяти с переменным размером.
4

Как динамически распределять память с помощью сборок и системных вызовов под Linux

Я ищу хорошие примеры кода для распределения динамической памяти с использованием языка ассемблера под Linux и использования системных вызовов, а не malloc и друзей. Каковы некоторые из простейших, но эффективных способов сделать это? На компьютера...
06 мая '10 в 14:54
2

Почему компилятор требует `delete [] p` versus` delete p [] `?

В С++, если вы хотите динамически выделять массив, вы можете сделать что-то вроде этого: int *p; p = new int[i]; // i is some number Однако, чтобы удалить массив, вы... delete[] p; Почему это не delete p[]? Разве это не было бы более симметри...
26 июн. '12 в 7:04
1

Динамический доступ к памяти работает только внутри функции

Этот вопрос предназначен для использования в качестве канонического дубликата для этого FAQ: Я динамически распределяю данные внутри функции, и все работает хорошо, но только внутри функции, в которой происходит распределение. Когда я пытаюсь испол...
14 сент. '16 в 9:20
2

Описание кода реализации ptmalloc

Я с нетерпением жду понимания того, как динамическое управление памятью работает на низком уровне в системах GNU/Linux (так же, как работает ptmalloc). Конечно, я прочитал код, но у меня много сомнений. Я, более или менее, понимаю структуры данных, ...
11 июл. '12 в 17:43
10

С++ что такое "pointer = new type" в качестве противопоставления "pointer = new type []"?

во многих турзаменах первые примеры кода о динамической памяти начинаются по строкам: int * pointer; pointer = new int; // version 1 //OR pointer = new int [20] // version 2 они всегда начинают объяснять, как работает вторая версия, но п...
18 мая '11 в 11:07
7

динамическое распределение массива массивов в C

Я действительно не понимаю некоторые основные вещи в C, как динамическое распределение массива массивов. Я знаю, что вы можете сделать: int **m; чтобы объявить 2-мерный массив (который впоследствии будет выделен с помощью некоторой функции * allo...
18 янв. '09 в 21:48
3

Почему или когда вам нужно динамически выделять память в C?

Динамическое распределение памяти - очень важная тема в программировании на языке C. Однако я не смог найти хорошее объяснение того, что это позволяет нам делать, или почему это требуется. Нельзя ли просто объявлять переменные и структуры и никогда ...
13 авг. '13 в 19:27
6

Распределение памяти кучи

Если я распределяю память динамически в своей программе с помощью malloc(), но я не освобождаю память во время выполнения программы, освобождается ли динамически выделенная память после завершения программы? Или, если он не освобожден, и я повторяю...
22 авг. '15 в 8:13
2

Какова цель "{}" в "новом int [5] {};"?

Если мы напишем что-то вроде: int *arr = new int[5]; В этом случае система динамически выделяет пространство для 5 элементов типа int и возвращает указатель на первый элемент последовательности. Но, как только я увидел следующий код: int *arr =...
13 окт. '17 в 6:41
2

Распределение кучи/динамической и статической памяти для экземпляра класса Single С++

Мой конкретный вопрос заключается в том, что при реализации singleton class в С++ существуют ли существенные различия между двумя приведенными ниже кодами относительно производительности, побочных проблем или что-то: class singleton { // ... ...
25 февр. '13 в 8:21
8

Переназначение переменной указателя после ее освобождения

Является ли это законным? Можете ли вы присвоить ptr чему-то после его освобождения? int * ptr = (int*) malloc(sizeof(int)); free(ptr); ptr = (int *) malloc(sizeof(int));
22 авг. '17 в 6:17
9

Может ли блок памяти, выделенный с помощью оператора new/malloc, сохраняться после завершения выполнения программы?

Возможный дубликат: Когда вы выходите из приложения C, автоматически ли освобождается память malloc-ed? Этот вопрос пришел мне на ум, когда я читал о том, как принудительно использовать delete/free соответственно, когда речь идет о распределен...
08 июл. '12 в 13:09
2

Является ли std:: variant разрешено выделять память для своих членов?

Мне было интересно, должна ли реализация std::variant быть обязательно "плоской" или разрешено динамически распределять память для своих членов, так что последовательность вариантов будет вырождаться в последовательность указателей, тем самым разруш...
18 дек. '17 в 20:36
1

CUDA новое удаление

Может ли кто-нибудь дать четкое объяснение того, как будут выглядеть новые и удаляемые ключевые слова, если они вызваны из кода __device__ или __global__ в CUDA 4.2? Где распределяется память, если ее на устройстве она локальная или глобальная? Эт...
19 янв. '13 в 18:17
6

Правильное использование realloc()

От человека realloc: функция realloc() возвращает указатель на вновь выделенную память, которая соответствующим образом выровнена для любой переменной, а может быть отличной от ptr, или NULL, если запрос не выполняется. Итак, в этом фрагменте кода...
08 янв. '14 в 21:16