В этом вопросе кто-то предложил в комментарии, что я не должен приводить результат malloc, т.е. int *sieve = malloc(sizeof(int) * length); скорее, чем: int *sieve = (int *) malloc(sizeof(int) * length); Почему это...
Функция malloc выполняет динамическое выделение памяти в C и является частью стандартной библиотеки. Используйте этот тег, чтобы задать вопросы об использовании, поведении и реализации malloc.
В этом вопросе кто-то предложил в комментарии, что я не должен приводить результат malloc, т.е. int *sieve = malloc(sizeof(int) * length); скорее, чем: int *sieve = (int *) malloc(sizeof(int) * length); Почему это...
В чем разница между выполнением: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); или: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Когда стоит использовать calloc вместо malloc или
Это было то, что беспокоило меня целую вечность. Нас всех учат в школе (по крайней мере, так было), что вы ДОЛЖНЫ освободить каждый указатель, который выделен. Мне немного любопытно, однако, о реальной стоимости не освобождения памяти. В некоторых очевидных случаях, например, когда mallocвызывается...
Я вижу, что в C ++ существует несколько способов выделения и освобождения данных, и я понимаю, что при вызове mallocвы должны вызывать, freeа когда вы используете newоператор, вы должны deleteвыполнять сопряжение, и смешивать их два - ошибка (например, вызов free()чего-то, что было создано с...
alloca()выделяет память в стеке, а не в куче, как в случае malloc(). Итак, когда я возвращаюсь из рутины, память освобождается. На самом деле это решает мою проблему освобождения динамически выделяемой памяти. Освобождение памяти, выделенной через malloc()это, является большой головной болью и,...
Я хочу знать, как 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); // Obvious Crash, but I need how it works and why crash. cout << p;...
Известно, что callocон отличается от mallocтого, что инициализирует выделенную память. С callocпомощью памяти устанавливается на ноль. С mallocпамятью не очищается. Таким образом , в повседневной работе, я считаю , callocкак malloc+ memset. Кстати, ради интереса я написал следующий код для теста....
Что такое куча
Сегодня я достиг страницы 167 языка программирования Си (второе издание Брайан В. Керниган и Деннис М. Ричи) и обнаружил, что автор говорит, что я должен сыграть malloc. Вот часть из книги: 7.8.5 Управление хранением Функции malloc и calloc динамически получают блоки памяти. void *malloc(size_t n)...
В моей компании есть правило кодирования, которое гласит, что после освобождения памяти сбросьте переменную в NULL. Например ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Я чувствую, что в случаях, подобных приведенному выше коду, установка значения...
Я получаю эту ошибку: предупреждение: несовместимое неявное объявление встроенной функции 'malloc' Я пытаюсь сделать это: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Просто для справки используемая структура: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t...
Я только что увидел этот код: artist = (char *) malloc(0); ... и мне было интересно, зачем это
Я погуглил и нашел, что большинство людей выступают за использование kmalloc, поскольку вы гарантированно получите непрерывные физические блоки памяти. Однако также кажется, что он kmallocможет потерпеть неудачу, если не удается найти непрерывный физический блок, который вам нужен. Каковы...
Я просматриваю чужой код C ++ для нашего проекта, который использует MPI для высокопроизводительных вычислений (10 ^ 5 - 10 ^ 6 ядер). Код предназначен для обеспечения связи между (потенциально) разными машинами на разных архитектурах. Он написал комментарий, в котором говорится примерно следующее:...
Если я использую mallocв своем коде: int *x = malloc(sizeof(int)); Я получаю это предупреждение от gcc: new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function...
В проекте кто-то выдвинул эту строку: double (*e)[n+1] = malloc((n+1) * sizeof(*e)); Что предположительно создает двумерный массив из (n + 1) * (n + 1) удвоений. Предположительно , я говорю, потому что до сих пор ни один из тех, кого я спрашивал, не мог сказать мне, что именно это делает, ни откуда...
Мне сказали, что следующий код имеет неопределенное поведение до C ++ 20: int *p = (int*)malloc(sizeof(int)); *p = 10; Это правда? Аргументом было то, что время жизни intобъекта не начинается до присвоения ему значения ( P0593R6 ). Для устранения проблемы newследует использовать размещение: int *p...
Я реализую полиномиальный алгоритм «разделяй и властвуй», поэтому могу сравнить его с реализацией OpenCL, но не могу приступить mallocк работе. Когда я запускаю программу, она выделяет кучу данных, кое-что проверяет, а затем отправляет size/2в алгоритм. Затем, когда я mallocснова нажимаю на линию,...
Чтобы быть ясным: я знаю, что mallocи freeони реализованы в библиотеке C, которая обычно выделяет фрагменты памяти из ОС и выполняет собственное управление для распределения меньших объемов памяти для приложения и отслеживает количество выделенных байтов. . Этот вопрос не в том, как бесплатно...