malloc



Malloc c

Автор КД задал вопрос в разделе Другие языки и технологии

C: malloc, free, NULL и получил лучший ответ

Ответ от Николай Веселуха[гуру]
int * p; // Создали указатель типа int
/*
Так как функция malloc возвращает указатель типа void *,
каждый раз при выделении памяти требуется явно преобразовывать
к типу указателя, по которому выделяется эта память
*/
p = (int *) malloc(sizeof(int)); // Выделили по этому указателю память
....// Что-то сделали.. .
free(p); // Освободили выделенную память
p = NULL; // Обнулили адрес указателя

Ответ от Андрей Макарычев[гуру]
malloc - выделение оперативной памяти для нужд вашей программы.
free - освобождение памяти.
Когда использовать - malloc по мере необходимости в памяти, free - когда память можно освободить (но забывать не следует) .
Разница между созданием массива и malloc - массив создается заранее определенного размера, тогда как malloc предполагает выделение требуемого в данный момент времени куска памяти, то есть размер памяти можно определять уже при выполнении программы.
Использовать free(realloc) отдельно от malloc (new) - корректно не получится: им нужен указатель на выделенный участок памяти.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: C: malloc, free, NULL

оператор new в C
А точно не float* array=new float[n1] ?

new - оператор C++, а не С. В С используется
подробнее...
спросили в Randomness Stdio h
C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
Объясняю: массив - это ряд одинаковых значений (нет, я не Очевидность 🙂 ). Имя массива в C/C++
подробнее...
спросили в Arch Linux Stdio h
Как пользоватся fopen() в C++
Если у тебя небольшие текстовые файлы, то можешь считать все содержимое файла прямо в буфер в
подробнее...

C++. Типы данных. Создание типа данных.
Минимальная граница для адресации процессора - 1 байт. Рекоммендуемая - 4 байта.
Если нужна
подробнее...

[C++] Как Выделит память под массив.
Странно
256 на 10 не делится, а в массиве элементы имеют одинаковый размер
Может там не
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Molex Stdlib h
C, malloc realloc
Эти функции возвращают указатель на тип void. Указательна этот тип может быть преобразован в
подробнее...
спросили в Stdlib h String h
C++, заголовк cstdlib и файл *.obj
В Visual C++ 2010 достаточно подключить #include <iostream> и уже будут подключены Внешние
подробнее...

чем отличается free от delete[ ] C++
delete вызывает деструктор, free этого делать не
подробнее...
спросили в Stdio h
Как не дать программе закрыться (С++, комп. Dev-C++)?
#include <conio.h> // подключить заголовочный файл
....
getch(); // делает
подробнее...

C++ Одна строчка - две ошибки (внутри исправленное)
Тебе же черным по белому пишут, что размерность массива должна быть константой (можно и не
подробнее...

Как в SAI на один холст вставить картинку так, чтобы картинка открылась на текущем слою, а не перепрыгивала на новый?
Выделяете картинку ctrl+a,копируете ctrl+c открываете холст куда хотите вставить и вставляете
подробнее...
спросили в Chrome CERN
Почему в Google Chrome не устанавливаются приложения?
Недавно столкнулись с такой проблемой, невозможно было установить ни одно расширение в браузер
подробнее...
Динамическое распределение памяти на Википедии
Посмотрите статью на википедии про Динамическое распределение памяти
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*