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

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

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

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

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

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

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

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

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

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

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

alloca() выделяет память в стеке, а не в куче, как в случае malloc(). Поэтому, когда я возвращаюсь из рутины, память освобождается. Итак, на самом деле это решает мою проблему освобождения динамически распределенной памяти. Освобождение памяти, выде...
19 июн. '09 в 16: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 в 12:22
3

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

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

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

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

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

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

Как вы можете вводить пробелы с помощью 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 в 4:37
23

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

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

что точка в malloc (0)?

Просто увидел этот code: artist = (char *) malloc(0); и мне было интересно, зачем это делать?
07 янв. '10 в 17:43
3

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

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

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

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

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

Что такое куча памяти?
22 февр. '10 в 4:15