powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Динамические массивы
18 сообщений из 18, страница 1 из 1
Динамические массивы
    #38244478
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, я динамически выделяю память для массива, размерность которого единица, и записываю в него определенное значение. Далее мне потребовалось добавить в этот массив еще одно значение, увеличив при этом размерность массива до двух, сохранив при этом записанное значение в первой ячейке. Каким образом это можно реализовать?
...
Рейтинг: 0 / 0
Динамические массивы
    #38244492
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выделить новый массив, скопировать значения из старого, удалить старый массив.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамические массивы
    #38244503
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть запись:
Код: plaintext
1.
2.
3.
4.
5.
6.
int ElementNumber=0;
float* ListMas;
ListMas=(float*)calloc(ElementNumber+1,sizeof(float));
cin>>ListMas[0];
ElementNumber++;
ListMas=(float*)calloc(ElementNumber+1,sizeof(float));


перезапишет массив нулями, просто увеличив его размерность и не сохранив введенную информацию. Если использовать malloc, то скорей всего значения в первой ячейке тоже будут утеряны. Возможно есть смысл пробывать через оператор new, но как конретно это реализовать я не знаю.
...
Рейтинг: 0 / 0
Динамические массивы
    #38244524
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18calloc
Ну, если ты пользуешься старыми функциями выделения памяти, то RTFM realloc().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамические массивы
    #38244573
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18, use std::vector, Luck!
...
Рейтинг: 0 / 0
Динамические массивы
    #38244656
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использование realloc по сравнению с простым созданием/копированием динамических массивов сократило код с 14 строк до 2-x.
...
Рейтинг: 0 / 0
Динамические массивы
    #38244666
kab18Использование realloc по сравнению с простым созданием/копированием динамических массивов сократило код с 14 строк до 2-x.
Чего так мало то, почему не 3?
1 - выделить память
2 - вставить значение
3 - пере-выделить память
...
Рейтинг: 0 / 0
Динамические массивы
    #38244669
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Использование realloc по сравнению с простым созданием/копированием
динамических массивов сократило код с 14 строк до 2-x.
Что ты там делал в этих девяти строчках-то? realloc логически эквивалентен следующему:
Код: sql
1.
2.
3.
newp=malloc(new_size);
memmove(newp, oldp, min(new_size,old_size));
free(oldp);


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамические массивы
    #38244721
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,

Перестань обзывать новичков "счастливчиками". Глаза режет.

Юного джедая зовут Luke.
Luck это удача, счастье. Произносится "лак".
...
Рейтинг: 0 / 0
Динамические массивы
    #38244992
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, да, учитель ))
...
Рейтинг: 0 / 0
Динамические массивы
    #38245630
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
struct List* ListBuf;
if(ElementNumber!=0)
{
ListBuf=(struct List*)calloc(ElementNumber,sizeof(struct List));
for(unsigned int i=0;i<ElementNumber;i++)
{
strcpy(ListBuf[i].Surname,ListMas[i].Surname);
strcpy(ListBuf[i].Name,ListMas[i].Name);
strcpy(ListBuf[i].Patronymic,ListMas[i].Patronymic);
}
}
ListMas=(struct List*)calloc(ElementNumber+1,sizeof(struct List));
if(ElementNumber!=0)
{
for(unsigned int i=0;i<ElementNumber;i++)
{
strcpy(ListMas[i].Surname,ListBuf[i].Surname);
strcpy(ListMas[i].Name,ListBuf[i].Name);
strcpy(ListMas[i].Patronymic,ListBuf[i].Patronymic);
}
}
free(ListBuf);
...
Рейтинг: 0 / 0
Динамические массивы
    #38245638
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заменил на это:
Код: plaintext
1.
2.
if(ElementNumber!=0) ListMas=(struct List*)realloc(ListMas,(ElementNumber+1)*sizeof(struct List));
else ListMas=(struct List*)malloc((ElementNumber+1)*sizeof(struct List));
...
Рейтинг: 0 / 0
Динамические массивы
    #38245689
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Заменил на это:
Заменить-то заменил, а справку так и не прочёл. В морг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Динамические массивы
    #38245725
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovkab18Заменил на это:
Заменить-то заменил, а справку так и не прочёл. В морг.

Что в этой записи неправильно? Нет условного оператора, который проверяет удачно ли выделилась память, или функцию sizeof нельзя использовать для структур?
...
Рейтинг: 0 / 0
Динамические массивы
    #38245799
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Dimitry Sibiryakovпропущено...

Заменить-то заменил, а справку так и не прочёл. В морг.

Что в этой записи неправильно? Нет условного оператора, который проверяет удачно ли выделилась память, или функцию sizeof нельзя использовать для структур?Прочитаешь справку - узнаешь.
...
Рейтинг: 0 / 0
Динамические массивы
    #38245840
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня плохо с английским, а читать то что выдает переводчик не особо охото. Может кто кинет ссылку на русскую справку, которая максимально подходит для С++ Builder 6, потому что для этой версии я нашел только демо-версию русской справки, которая наполовину пустая.
Код: plaintext
1.
ListMas=(struct List*)realloc(ListMas,(ElementNumber+1)*sizeof(struct List));
...
Рейтинг: 0 / 0
Динамические массивы
    #38252823
Кот Чеширский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18У меня плохо с английским, а читать то что выдает переводчик не особо охото.

Простите вы пишите под 640 кб MS DOS? А то думать особо не охота....

ЗЫ Я бы выделил сразу память на гигабайт, а потом бы добавлял по одному символу.
...
Рейтинг: 0 / 0
Динамические массивы
    #38252829
Кот Чеширский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18 Возможно есть смысл пробывать через оператор new, но как конретно это реализовать я не знаю.

Как вариант изучить С++.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Динамические массивы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]