Описание тега malloc

The malloc function performs dynamic memory allocation in C and is part of the standard library. Use this tag for questions about usage, behavior and implementations of malloc.
2 ответа

Связанный список строк в C

Я пытаюсь создать связанный список строк в C, и у меня были проблемы с добавлением первого узла в список. По какой-то причине моя программа печатает NULL, хотя я ссылаюсь на переменную head на newNode, но она не копирует строку из указателя структур…
1 ответ

Когда я вставляю узел в соседний список, я не могу получить значение на графике

6 typedef struct _Node{ 7 int vertex; 8 struct _Node * next; 9 }Node; 10 11 typedef struct _graph{ 12 Node *adj[MAX_TERMS]; 13 }Graph; 14 15 void Linsert(Graph * graph, int count, Node * temp) 16 { 17 Node * cur = graph->adj[count]; 18 19 while(…
09 июн '17 в 02:42
3 ответа

Какое ограничение на параметр malloc типа size_t в C? Документы говорят, что у него есть верхний предел UINT_MAX, но я не могу выйти за пределы INT_MAX

Я хочу выделить массив 2.9GB с database = (char*) malloc((2900 * 1000000 * sizeof(char))); Это дает целочисленное предупреждение о переполнении и malloc возвращается NULL,malloc параметр имеет тип size_t который согласно документации имеет тип unsig…
02 мар '12 в 17:49
3 ответа

Какое содержимое памяти только что выделено функцией malloc()?

Мне было интересно, что именно держит указатель после malloc() был использован для выделения памяти? Manpage говорит мне, что calloc() инициализирует выделенное пространство памяти с нуля. Функция malloc() распределяет байты размера и возвращает ука…
8 ответов

Какое распределение быстрее? malloc против локальной переменной

Какой предпочтительный способ выделить память для функции, которая часто выделяет и освобождает память? Предположим, что эта функция вызывается от 500 до 1000 раз в секунду на процессоре с частотой 1 ГГц. (Пожалуйста, игнорируйте статические и глоба…
05 мар '12 в 09:07
0 ответов

Valgrind сообщает об освобожденных байтах, но об освобожденных блоках после asprintf()

Я знаю, что asprintf() выделяет память, и ее нужно освободить после вызова. Я добавил бесплатные операторы для указателей, предоставляемых asprintf (после их использования), но в то же время valgrind сообщает, что у меня все еще есть утечки памяти: …
11 окт '17 в 18:02
6 ответов

Как освободить символ *, который возвращается из другой функции?

Допустим, у нас есть следующий сценарий. char* halfString(char* input) { char* output = malloc(strlen(input)); int i = 0; for(i = 0; i < strlen(input); i++) output[i] == input[i]; output[i] = '\0'; return output; } int main() { char* input = "Hel…
28 мар '14 в 20:07
1 ответ

Как мне создать динамическое распределение памяти, используя malloc для структур в C?

Я хочу динамически выделять память для "заголовка", так как не знаю, как долго будут заголовки. У меня есть следующий код: #include<stdio.h> #include<malloc.h> struct film { char title[500]; int year; int duration; int earnings; }; void …
29 май '18 в 16:06
6 ответов

Память, выделенная с помощью malloc, не сохраняется вне области действия функции?

Привет, Я немного новичок в функции malloc C, но из того, что я знаю, она должна хранить значение в куче, так что вы можете ссылаться на него с указателем из-за пределов исходной области видимости. Я создал тестовую программу, которая должна делать…
25 мар '10 в 05:16
1 ответ

C Windows - Memory Mapped File - динамический массив в общей структуре

Я пытаюсь поделиться структурой, похожей на следующий пример: typedef struct { int *a; int b; int c; } example; Я пытаюсь разделить эту структуру между процессами, проблема, с которой я сталкиваюсь, заключается в том, что когда я инициализирую 'a' с…
19 апр '15 в 14:36
0 ответов

Реализация функции realloc с использованием malloc

Я новичок в с. Могу я написать realloc() функция с помощью malloc() а также free() Я лично чувствую, что это не может быть реализовано, так как мы не знаем размер памяти, выделенной для указателя, который передается realloc() Спасибо
24 авг '14 в 09:21
2 ответа

Простое упражнение C. Последняя позиция перезаписывается

Я целый день редактирую свой код, но не могу найти причину, по которой последняя позиция моего массива перезаписывается!! #include <stdio.h> #include <math.h> #include <ctype.h> #include <string.h> #include <stdlib.h> t…
09 янв '14 в 20:35
0 ответов

git rev-list --all --objects не работает с нехваткой памяти, malloc не удалось

Я пытаюсь бежать: git rev-list --objects --all используя 32-битный Cygwin, но он терпит неудачу с: fatal: Out of memory, malloc failed (tried to allocated 805523547) bytes. что соответствует размеру большого сгустка, совершенного в начале истории ре…
29 июн '13 в 14:58
1 ответ

Интервал выделения памяти

struct Thing { int member1; int member2; }; struct Thing* heap() { struct Thing* heap_thing = (struct Thing*)malloc(sizeof(struct Thing)); heap_thing->member1 = 1; heap_thing->member2 = 2; printf("%p, %p, %p\n", heap_thing, &(heap_thing-&g…
10 окт '15 в 01:49
2 ответа

malloc не может выделить память

Я просто не понимаю, почему malloc продолжает работать с ошибкой "Не удается выделить память" в этой функции: (она вызывает perror и возвращает -1) РЕДАКТИРОВАТЬ: size_t является типом без знака, конечно, он не будет работать при передаче -1 int cir…
01 июл '17 в 12:02
1 ответ

malloc void возвращать массив символов иногда не работает (Терри Дэвис был прав насчет C++);

Почему это вызывает разрыв в VS, я предполагаю, что это так, потому что указатель __array_buffer, по-видимому, не имеет значения после завершения update_typeArray вокруг третьего вызова, но не всегда. Понятия не имею почему. пожалуйста, помогите мне…
19 сен '18 в 16:21
3 ответа

Создание класса с использованием указателя, выделенного функцией malloc()

Возможный дубликат: C++ - "размещение новых" Помогите с утверждением C++ Я работаю над продуктом, где большинство модулей написаны на C. Среди них один или два модуля написаны на C++. Я нахожу ниже код в модуле C++, который я не мог понять, что прои…
24 фев '12 в 09:54
2 ответа

Как обеспечить, чтобы динамически размещенный массив был закрытым в openmp

Я работаю в C с openMP, используя gcc на Linux-машине. В openmp параллельном цикле я могу объявить статически размещенный массив как закрытый. Рассмотрим фрагмент кода: int a[10]; #pragma omp parallel for shared(none) firstprivate(a) for(i=0;i<4;…
28 фев '10 в 22:13
1 ответ

strcpy с размером больше, чем malloc

Это был вопрос с экзамена: этот код всегда работает? Ответ таков: оператор if проверяет, указывает ли виртуальный адрес 'str' на начало страницы, только тогда следует выполнить strcpy, и он будет работать, потому что весь процесс доступен для всего …
30 июн '15 в 20:37
0 ответов

Malloc карта из текстового файла для игры Hunt The Wumpus

Я работаю над игрой Hunt The Wumpus. Пока у меня есть Struct Map, которая будет обрабатывать карту для моей игры, и мне предоставляется текстовый файл, содержащий информацию о карте. Текстовый файл как ниже: 5 2 0 1 3 2 2 3 1 4 0 0 Первая строка име…
03 апр '16 в 01:01