Вопросы с тегом 'malloc'

Функция malloc выполняет динамическое распределение памяти в C и является частью стандартной библиотеки. Используйте этот тег для вопросов об использовании, поведении и реализации malloc.
27
ответов

Вывести результат malloc?

В этот вопрос, кто-то предложил в comment, что я должен не введите результат malloc, т.е. int *sieve = malloc(sizeof(int) * length); а не: int *sieve = (int *) malloc(sizeof(int) * length); Почему это так?
задан 03 марта '09 в 13:13
18
ответов

Разница между malloc и calloc?

В чем разница между выполнением: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); или ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Когда полезно использовать calloc над malloc или наоборот?
задан 08 окт. '09 в 18:04
17
ответов

Что ДЕЙСТВИТЕЛЬНО происходит, когда вы не свободны после malloc?

Это то, что беспокоило меня целую вечность. Мы все учимся в школе (по крайней мере, я был), что вы ДОЛЖНЫ освобождать каждый указатель, который выделяется. Мне немного любопытно, правда, о реальной стоимости освобождения памяти. В некоторых очевидны...
задан 17 марта '09 в 18:29
18
ответов

В каких случаях я использую malloc vs new?

Я вижу, что в С++ существует несколько способов выделения и освобождения данных, и я понимаю, что при вызове malloc вы должны называть free, а когда вы используете оператор new, вы должны соединить с delete, и это (например, вызов free() на то, что ...
задан 08 окт. '08 в 22:47
24
ответов

Почему использование alloca() не считается хорошей практикой?

alloca() выделяет память из стека, а не кучи, которая является случаем в malloc(). Поэтому, когда я возвращаюсь из рутины, память освобождается. Таким образом, на самом деле это решает мою проблему освобождения динамически распределенной памяти. Ос...
задан 19 июня '09 в 19:24
14
ответов

Как работают malloc() и free()?

Я хочу знать, как malloc и free работа. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // ...
задан 13 июля '09 в 15:22
3
ответов

Почему malloc + memset работает медленнее, чем calloc?

Известно, что calloc отличается от malloc тем, что он инициализирует выделенную память. С calloc память установлена ​​на ноль. С malloc память не очищается. Поэтому в повседневной работе я рассматриваю calloc как malloc + memset. Кстати, для удовол...
задан 22 апр. '10 в 8:40
1
ответ

Почему в Книге говорят, что я должен бросить malloc?

Сегодня я достиг страницы 167 Язык программирования C (второе издание Брайан У. Керниган и Деннис М. Ричи) и обнаружил, что автор говорит, что я должен использовать malloc. Вот часть из книги: 7.8.5 Управление хранилищем Функции malloc и callo...
задан 18 сент. '15 в 15:36
5
ответов

Несовместимое неявное объявление встроенной функции 'malloc

Я получаю эту ошибку: предупреждение: несовместимое неявное объявление встроенной функции 'malloc Я пытаюсь сделать это: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Только для справки используемая структура: typedef struct { ...
задан 13 авг. '11 в 16:49
23
ответов

Установка переменной в NULL после

В моей компании есть правило кодирования, которое говорит, освободив любую память, reset переменную до NULL. Например... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Я чувствую, ч...
задан 22 июня '09 в 8:35
3
ответов

Причудливый способ выделения двумерного массива?

В проекте кто-то нажал эту строку: double (*e)[n+1] = malloc((n+1) * sizeof(*e)); Что предположительно создает двумерный массив (n + 1) * (n + 1), удваивается. Предположительно, я говорю, потому что до сих пор никто, кого я попросил, не мог сказа...
задан 22 апр. '16 в 15:43
8
ответов

Malloc vs new - различная прокладка

Я просматриваю код другого С++ для нашего проекта, который использует MPI для высокопроизводительных вычислений (10 ^ 5 - 10 ^ 6 ядер). Код предназначен для обеспечения связи между (потенциально) разными машинами на разных архитектурах. Он написал ко...
задан 08 нояб. '12 в 13:01
6
ответов

Что такое куча памяти?

Что такое куча памяти?
задан 22 февр. '10 в 7:15
11
ответов

Как вы можете вводить пробелы с помощью scanf?

Используя следующий код: char *name = malloc(sizeof(char) + 256); printf("What is your name? "); scanf("%s", name); printf("Hello %s. Nice to meet you.\n", name); Пользователь может ввести свое имя, но когда он вводит имя с пробелом, как Lucas...
задан 08 авг. '09 в 7:37
4
ответов

Почему я получаю предупреждение каждый раз, когда я использую malloc?

Если я использую malloc в своем коде: int *x = malloc(sizeof(int)); Я получаю это предупреждение от gcc: new.c: 7: предупреждение: неявное объявление функции 'malloc new.c: 7: warning: несовместимое неявное объявление встроенной функции 'mall...
задан 05 авг. '09 в 2:15