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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 113, средняя оценка - 4.84
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 17:27     В чем разница malloc и calloc? #1
подскажите пожалуйста,в чем разница malloc и calloc?
эмалок выделение динамической памяти а сиалок выделение чистой памяти. в смысле чистой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2010, 17:27     В чем разница malloc и calloc?
Посмотрите здесь:

C++ malloc vs. calloc
calloc vs malloc C++
C++ Как string создает строку?(calloc, malloc)
C++ Чем new отличается от malloc?
Чем заменить calloc? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 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
 Аватар для oxotnik
1584 / 1061 / 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
 Аватар для oxotnik
1584 / 1061 / 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
 Аватар для oxotnik
1584 / 1061 / 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++ Malloc / calloc
C++ Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc?
C++ В чем разница между new и malloc()?

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

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

Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru