Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 113, средняя оценка - 4.84
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
#1

В чем разница malloc и calloc? - C++

22.12.2010, 17:27. Просмотров 15173. Ответов 8
Метки нет (Все метки)

подскажите пожалуйста,в чем разница malloc и calloc?
эмалок выделение динамической памяти а сиалок выделение чистой памяти. в смысле чистой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
22.12.2010, 17:34     В чем разница malloc и calloc? #2
char *calloc(n,size);
unsigned n; количество элементов
unsigned size; длина каждого элемента в байтах
Описание

Функция calloc захватывает пространство для хранения масси-

ва из n элементов, каждый длиной size байт. Каждый элемент иници-
ализируется в 0.




char *malloc(size);
unsigned size; количество байтов в захваченном
блоке

Описание.

Функция malloc захватывает блок памяти по крайней мере не
меньшей, чем из size байтов. (Блок может быть больше, чем size
байтов, принадлежащих пространству, которое требуется для вырав-
нивания и для поддержания информации).
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 17:37  [ТС]     В чем разница malloc и calloc? #3
другими словами салок выделяет память чтотко на размер массива а эмалок можно взять чуть больше. я правильно понял?)
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
22.12.2010, 17:40     В чем разница malloc и calloc? #4
Цитата Сообщение от Егорка47 Посмотреть сообщение
а эмалок можно взять чуть больше
это значит, что она выделяет память, в которую гарантированно влезут некие данные с учетом выравнивания. calloc выделяет только указанный массив и плюс к этому обнуляет все внутри него.
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 17:46  [ТС]     В чем разница malloc и calloc? #5
в смысле обнуляет?
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
22.12.2010, 17:50     В чем разница malloc и calloc? #6
примерно тоже самое, что делает ф-я memset(&buf, 0, sizeof(buf)) - все байты нулю приравнивает
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 17:53  [ТС]     В чем разница malloc и calloc? #7
я не знаю такой функции..вроде.
все равно не понял..размер будет 0 байт?или что?
простите за возможно глупые вопросы
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
22.12.2010, 17:58     В чем разница malloc и calloc? #8
нет, был к примеру массив байт, в памяти выглядел так:
{0x01, 0xA2, 0xFA, 0xFF, 0x00, 0x33}
т.е. память была кем то "загажена" (отсюда к стати и растут ноги, того что переменные перед использованием надо инициализировать)
после мемсета или выделения каллоком стало все по нулям
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2010, 17:59     В чем разница malloc и calloc?
Еще ссылки по теме:
C++ Как string создает строку?(calloc, malloc)
C++ Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc?
Чем заменить calloc? C++
C++ Чем new отличается от malloc?
Чем отличаются ф-ии GlobalAllocPtr() и malloc()? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 17:59  [ТС]     В чем разница malloc и calloc? #9
спасибо большое,понятно теперь!)
Yandex
Объявления
22.12.2010, 17:59     В чем разница malloc и calloc?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru