|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.02.2014, 19:55 | #1 |
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
Си.Динамические массивы.Вопросы
Пример из книги Практика программирования(Роб Пайк,Брайан Керниган) Тема Расширяемые массивы.
Код:
Я правильно понял процесс весь? можно так это описать? Когда вызывается функция malloc передается аргумент в виде размера структуры Nameval,этим аргументом мы говорим какой выделить размер отдельного пространства памяти(динамическая память) и оно никогда не пересекается с обычным пространством памяти(статическая память).И malloc после завершения вызова возвращает адрес указателя на начало этого отдельного пространства памяти и явное приведение типа перед функцией malloc указывает под какой тип данных нужно выделить это отдельное пространство памяти. realloc перемещает динамическую память выделенную для указателя nameval в еще больший участок памяти в его начало. После первого вызова функции addname(в которой вызывается функция malloc) указатель nameval надо называть статическим массивом указателей с определенным размером элементов(в данном примере 1 элемент) а после второго и последующих вызовов функции addname(вызовов функции realloc) изменяется его размер и правильней его уже называть - динамический массив указателей. Код:
Код:
Код:
Код:
Код:
Код:
Код:
Т.е. когда я не использую в коде new(С++) malloc(Си), я пользуюсь всегда только статической памятью? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамические массивы | [ICQ] | Помощь студентам | 3 | 20.02.2015 17:31 |
динамические массивы | Dimarik | Visual C++ | 10 | 27.05.2011 12:25 |
Динамические массивы | Solnze2 | Помощь студентам | 0 | 22.05.2011 20:54 |
Динамические массивы и массивы варианты | N@stya | Помощь студентам | 0 | 11.06.2010 21:09 |