![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 32
|
![]()
Добрый день! Подскажите, что я делаю не так при управлении размером динамического массива? Язык - c
Код:
Код:
Задумка вобще такая: я переписываю прогу с Delphi на C (Linux) и мне нужна альтернатива TStringList, в котором содержатся только числа. В процедуре console_add задумка такая: для динамического массива console должно резервироваться памяти ровно на один дополнительный елемент (тип int) при каждом вызове процедуры. Ошибка вылетает после 6 вызовов. Последний раз редактировалось abr_question; 17.12.2009 в 15:22. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Ну вы же понимаете, что sizeof(console) == 4 байта на 32-х разрядных системах? Всегда. Мысль с console_p верна(если я правильно её понял, это ведь счётчик элементов?) но нужно домножать её на sizeof(int). А вообще так как вы делаете делать не хорошо, ибо медленно очень, увеличивайте размер массива сразу в два раза или как-то так. Отдельная переменная будет следить за размером массива, другая за кол-ством элементов в нём
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
![]() Код:
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 15.01.2008
Сообщений: 32
|
![]() Цитата:
Код:
Счас попробую с увеличением массива в 2 раза. Проблемка с _msize. Справочники указыают, что она хранится в malloc.h, но у меня malloc.h не содержит такой функции. Более того, весь /usr/include не содержит ни одного файла, в которой данная функция присутствует. Она не устарела случаем? |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 32
|
![]()
Ааааагрх! Всё! Нашёл, кажется, ошибку
![]() Я же инициализирую console_p = 0. Размер тоже правильно устанавливаю, как ++console_p * sizeof(int). А затем делаю глупейшую ошибку и присваиваю значение по адресу console_p, который уже за массивом. Счас переписал Код:
Спасибо всем, кто помог ![]() |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() Код:
Последний раз редактировалось netrino; 17.12.2009 в 18:29. Причина: поправил |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 32
|
![]()
netrino, спасибо! Возьму вариант на заметку, если полетит ныне существующий.
У меня щё есть один вопрос, но он уже по указателям. Хочу сделать так, чтобы в функция обрабатывала не один массив, а несколько. То есть, возникла необходимость функцию привести к общему виду. Фактически получилось так: Код:
![]() |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]() Цитата:
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 32
|
![]()
RoS, имеется ввиду ето?:
Код:
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
С двойным указателем там верно было.. Насчёт
Код:
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с динамическим массивом | TheKnyazz | Общие вопросы C/C++ | 3 | 28.04.2009 18:37 |
Проблемма с динамическим массивом | Arassir | Помощь студентам | 3 | 15.02.2009 12:37 |
Помогите с динамическим массивом!!!! | vish25 | Помощь студентам | 2 | 31.05.2008 19:20 |
проблема с динамическим массивом | romeo007.06 | Общие вопросы Delphi | 1 | 03.04.2008 20:18 |
проблема с динамическим массивом | kommunist | Помощь студентам | 6 | 11.11.2007 21:18 |