Публикации по теме 'dynamic-memory-allocation'
Указатели и их типы
Когда мы говорим о доступе к данным из памяти в языках программирования, первое, что приходит на ум, это указатели. Указатель — это объект, в котором хранится адрес памяти другого значения, хранящегося где-то в памяти компьютера .
Процесс указания указателя на ячейку памяти известен как ссылка . Если мы хотим извлечь или, скажем, получить данные из этой области памяти, мы используем процесс, называемый разыменованием указателя .
Объявление переменной Pointer:
Объявить..
Понимание распределения и управления памятью в программировании: автоматический и автоматический
Привет! Сегодня мы поговорим о двух разных способах выделения памяти в компьютерном программировании: автоматическом и динамическом выделении. Мы также рассмотрим две функции, «malloc» и «free», которые используются для динамического выделения и освобождения памяти в программах. Наконец, мы поговорим о том, как использовать «valgrind» для проверки утечек памяти.
Для начала давайте представим память как большую книжную полку. Книжная полка имеет ограниченное количество места, как и..
Вопросы по теме 'dynamic-memory-allocation'
динамическое выделение/освобождение 2D- и 3D-массивов
Я знаю об алгоритмах динамического выделения/освобождения 2D-массива, однако я не слишком уверен в том же для 3D-массивов. Используя эти знания и немного симметрии, я придумал следующий код. (Мне было трудно визуализировать в 3D во время...
41048 просмотров
schedule
15.03.2023
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 просмотров
schedule
08.12.2022
Как реализованы malloc и free?
Я хочу реализовать свою собственную систему управления динамической памятью, чтобы добавить новые функции, которые помогают управлять памятью в C ++.
Я использую Windows (XP) и Linux (Ubuntu). Что нужно для реализации таких функций, как malloc и...
6189 просмотров
schedule
08.08.2022
Динамический массив в модуле ядра Linux
Я работаю над модификацией PKTGEN для отправки пакетов, содержащих последовательности рядов Фибоначчи. Это мой первый опыт разработки ядра, поэтому я не очень хорошо знаком с доступными функциями для выделения памяти. Я тоже не гуру Си :)
Я храню...
4178 просмотров
schedule
01.04.2023
Динамическое выделение 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 просмотров
schedule
19.12.2023
Удаление заднего элемента в связанном списке
Это не дубликат вопроса с похожим названием. Это связано с ООП, вызовами new и delete.
Я пытаюсь написать функцию, которая будет выполнять итерацию в конце моего связанного списка, а затем удалять выделенную память в куче последнего узла.
Вот...
21464 просмотров
schedule
12.03.2023
Утечки деструктора 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 просмотров
schedule
19.03.2023
Динамическое выделение 2d-массива и его инициализация (ошибка сегментации)
Я изучаю C, и я попытался выделить память для 2D-массива (размеры массива я получаю от пользователя), но я получаю ошибку сегментации после того, как пытаюсь его инициализировать. Мой код таков:
#include <stdio.h>
#include <stdlib.h>...
1403 просмотров
schedule
09.09.2022
Каков рекомендуемый способ выравнивания памяти в С++ 11?
Я работаю над реализацией кольцевого буфера с одним производителем и одним потребителем. У меня есть два требования:
Выровняйте один экземпляр кольцевого буфера, выделенный в куче, по строке кэша.
Выровняйте поле в кольцевом буфере по строке...
34292 просмотров
schedule
05.09.2022
Правильное использование realloc ()
От man realloc: функция realloc () возвращает указатель на вновь выделенную память, которая соответствующим образом выровнена для любого типа переменной и может отличаться от ptr или NULL, если запрос не выполняется.
Итак, в этом фрагменте кода:...
19349 просмотров
schedule
17.06.2023
связанный список ошибок сегментации
Я вижу похожую тему, но они мне не помогли. У меня есть связанный список и функция для вставки элементов.
struct node{
int data;
struct node* next;
} node;
struct node* head;
void insert(struct node* head,int x);
int main(){
struct...
16499 просмотров
schedule
17.04.2022
Функция размерного освобождения памяти в управлении памятью в C++1y
Было предложено включить функцию Sized Deallocation в C++1y. Однако я хотел понять, как это повлияет/улучшит текущее управление памятью низкого уровня c++?
Это предложение находится в N3778 , в котором говорится о намерении этого....
2454 просмотров
schedule
16.06.2022
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 просмотров
schedule
11.05.2023
Исключение std::bad_alloc возникает при вызове метода operator= C++
Я пишу свой самый первый класс на C++, который является полиномом, и я столкнулся с исключением bad_alloc, возникающим при выполнении
P=Q; //(P,Q being polynomials)
Я предполагаю, что тот факт, что выбрасывается bad_alloc (и иногда процесс...
1066 просмотров
schedule
27.10.2022