Публикации по теме 'dynamic-memory-allocation'


Указатели и их типы
Когда мы говорим о доступе к данным из памяти в языках программирования, первое, что приходит на ум, это указатели. Указатель — это объект, в котором хранится адрес памяти другого значения, хранящегося где-то в памяти компьютера . Процесс указания указателя на ячейку памяти известен как ссылка . Если мы хотим извлечь или, скажем, получить данные из этой области памяти, мы используем процесс, называемый разыменованием указателя . Объявление переменной Pointer: Объявить..

Понимание распределения и управления памятью в программировании: автоматический и автоматический
Привет! Сегодня мы поговорим о двух разных способах выделения памяти в компьютерном программировании: автоматическом и динамическом выделении. Мы также рассмотрим две функции, «malloc» и «free», которые используются для динамического выделения и освобождения памяти в программах. Наконец, мы поговорим о том, как использовать «valgrind» для проверки утечек памяти. Для начала давайте представим память как большую книжную полку. Книжная полка имеет ограниченное количество места, как и..

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

динамическое выделение/освобождение 2D- и 3D-массивов
Я знаю об алгоритмах динамического выделения/освобождения 2D-массива, однако я не слишком уверен в том же для 3D-массивов. Используя эти знания и немного симметрии, я придумал следующий код. (Мне было трудно визуализировать в 3D во время...
41048 просмотров

posix_memalign для std::vector
Есть ли способ posix_memalign a std::vector без предварительного создания локального экземпляра вектора? Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно сообщить posix_memalign, сколько места нужно выделить, и я не знаю, как...
2221 просмотров
schedule 16.05.2023

Еще одна ошибка динамического выделения памяти
Пытаюсь выделить память под многомерный массив (8 строк, 3 столбца). Вот код для выделения (я уверен, что ошибка вам ясна) char **ptr = (char **) malloc( sizeof(char) * 8); for (i = 0; i < 3; i++) ptr[i] = (char *) malloc( sizeof(char)...
296 просмотров

Как реализованы malloc и free?
Я хочу реализовать свою собственную систему управления динамической памятью, чтобы добавить новые функции, которые помогают управлять памятью в C ++. Я использую Windows (XP) и Linux (Ubuntu). Что нужно для реализации таких функций, как malloc и...
6189 просмотров
schedule 08.08.2022

Динамический массив в модуле ядра Linux
Я работаю над модификацией PKTGEN для отправки пакетов, содержащих последовательности рядов Фибоначчи. Это мой первый опыт разработки ядра, поэтому я не очень хорошо знаком с доступными функциями для выделения памяти. Я тоже не гуру Си :) Я храню...
4178 просмотров

Динамическое выделение char** в C
У меня есть тип даты, определенный как typedef char* DateTime; формат "дд/мм/гггг-чч:мм", например. "08.08.2012-12:00" и я хочу выделить n строк, которые являются «датами». Что не так со следующим? DateTime* dates = (DateTime* )...
263 просмотров
schedule 08.11.2022

Производительность накопителя сильно снижается при выделении кусков большого размера.
Ниже я написал пример программы на «C», которая интенсивно использует динамическую память, и попытался сравнить то же самое (с точки зрения времени) для распределителя по умолчанию «glibc» по сравнению с распределителем Hoard. 1 #include...
377 просмотров
schedule 20.08.2022

Впервые впервые в динамической памяти
почему ошибка #include <stdio.h> int main(void) { int *p, size, i; FILE *fp; fp = fopen("input.txt","r"); fscanf(fp, "%d", &size); p = (int*)malloc(size*sizeof(int)); //error for (i = 0; i <size; i++)...
302 просмотров
schedule 27.09.2023

Инициализация динамического массива в c
По C99 стандартам мы можем это сделать int n = 0; scanf("%d",&n); int arr[n]; это один из способов создания динамического массива в c. Теперь я хочу инициализировать этот массив до 0 вот так int arr[n] = {0}; Здесь мой...
1331 просмотров
schedule 26.01.2024

динамическое выделение памяти для буфера
Я работаю над визуальным С++. Я новичок в С++, и я нахожусь в странной ситуации, когда у меня есть переменная «Содержание» типа char FileContents[200000] ; теперь я взял размер файла, используя оператор sizeof, подобный этому int...
460 просмотров

Удаление заднего элемента в связанном списке
Это не дубликат вопроса с похожим названием. Это связано с ООП, вызовами new и delete. Я пытаюсь написать функцию, которая будет выполнять итерацию в конце моего связанного списка, а затем удалять выделенную память в куче последнего узла. Вот...
21464 просмотров

Утечки деструктора C ++ с динамической памятью
// Class ArrayIntVector : IntVector{ private: int *data; int dataCapacity; int numElements; void check_invariants() const; } // Constructor ArrayIntVector::ArrayIntVector(int initCapacity) : dataCapacity(initCapacity), numElements(0) {...
304 просмотров

Динамическое выделение 2d-массива и его инициализация (ошибка сегментации)
Я изучаю C, и я попытался выделить память для 2D-массива (размеры массива я получаю от пользователя), но я получаю ошибку сегментации после того, как пытаюсь его инициализировать. Мой код таков: #include <stdio.h> #include <stdlib.h>...
1403 просмотров

Каков рекомендуемый способ выравнивания памяти в С++ 11?
Я работаю над реализацией кольцевого буфера с одним производителем и одним потребителем. У меня есть два требования: Выровняйте один экземпляр кольцевого буфера, выделенный в куче, по строке кэша. Выровняйте поле в кольцевом буфере по строке...
34292 просмотров

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

связанный список ошибок сегментации
Я вижу похожую тему, но они мне не помогли. У меня есть связанный список и функция для вставки элементов. struct node{ int data; struct node* next; } node; struct node* head; void insert(struct node* head,int x); int main(){ struct...
16499 просмотров

Функция размерного освобождения памяти в управлении памятью в C++1y
Было предложено включить функцию Sized Deallocation в C++1y. Однако я хотел понять, как это повлияет/улучшит текущее управление памятью низкого уровня c++? Это предложение находится в N3778 , в котором говорится о намерении этого....
2454 просмотров

SIGTRAP при вызове функции free()
Я получаю сигнал SIGTRAP при попытке освободить динамически созданный массив и понятия не имею, почему. Я выделяю массив следующим образом: int* visited = (int*) malloc( l.nodeCount * sizeof(int)); (l.nodeCount — целое число. В экземпляре...
2026 просмотров
schedule 25.10.2022

Сбой программы при попытке освободить 2D-динамический выделенный массив
Вообще сложно понять, что и почему происходит. В начале программы я объявляю два 2D динамических массива (все используемые в программе массивы имеют одинаковые размеры): int **initial_array; int **new_array; Затем выделяю необходимую...
604 просмотров

Исключение std::bad_alloc возникает при вызове метода operator= C++
Я пишу свой самый первый класс на C++, который является полиномом, и я столкнулся с исключением bad_alloc, возникающим при выполнении P=Q; //(P,Q being polynomials) Я предполагаю, что тот факт, что выбрасывается bad_alloc (и иногда процесс...
1066 просмотров