Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2013, 07:55   #1
Sem2001
 
Регистрация: 26.06.2013
Сообщений: 9
По умолчанию Размер структуры.

Доброго всем дня.
Скажите пожалуйста можно ли изменить размер структуры? То есть, есть структура
struct mystruct {
long i;
char *buf;
double d;
};
с указателем на строку char*, строка меняется в процессе работы с программой, допустим берется с поля ввода заполняемого пользователем.

Что-то типа:
mystruct ms;
ms.buf=new char[Edit1->Text.Length()+1];
Sem2001 вне форума Ответить с цитированием
Старый 26.06.2013, 08:43   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Нет, размер структуры изменить нельзя.
waleri вне форума Ответить с цитированием
Старый 26.06.2013, 08:52   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

не пойму как вопрос связан с названием темы.
Размер структуры изменить нельзя.

но это:
Код:
ms.buf=new char[Edit1->Text.Length()+1];
выполнить можно (но на размер структуру оно никоим образом не влияет).

Ты там сам все верно пишешь "с указателем на строку char*, строка меняется в процессе работы". Строка меняется, может быть меняется указатель (значение), но количество байт, занимаемый указателем и адрес указателя остаются неизменными
rrrFer вне форума Ответить с цитированием
Старый 01.07.2013, 10:31   #4
Sem2001
 
Регистрация: 26.06.2013
Сообщений: 9
По умолчанию

Хорошо тогда так.
структура №1 размер структуры 500
struct stuct1
{
char buf[500];
};

структура №2 размер структуры 4
struct stuct2
{
char *buf;
};
....
struct2.buf=new char[500];
strcpy(struct2.buf,"....");
....

Как сделать так что бы структура имела переменный размер данных?
Sem2001 вне форума Ответить с цитированием
Старый 01.07.2013, 11:37   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Sem2001 Посмотреть сообщение
Как сделать так что бы структура имела переменный размер данных?
Никак, размер структуры менять нельзя.
Если надо менять размер какогото масива, то следует выделить новый блок памяти, скопировать туда новый данный или данный из старого массива, после чего удалить старый массив.
waleri вне форума Ответить с цитированием
Старый 01.07.2013, 16:28   #6
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Смысл в том что записывая в структуру char *buffer, и даже выделяя память то в структуре остается всего лишь навсего ссылка на этот участок памяти. По этому структура не изменит своего размера. Хотя я не совсем понимаю зачем тебе менять размер структуры?
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Старый 03.07.2013, 08:28   #7
Sem2001
 
Регистрация: 26.06.2013
Сообщений: 9
По умолчанию

Хочу сохранить структуру в двоичный файл. Строковая переменная будет иметь разный текст, разной длины. Неужели нет решения?
Sem2001 вне форума Ответить с цитированием
Старый 03.07.2013, 08:39   #8
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Sem2001 Посмотреть сообщение
Хочу сохранить структуру в двоичный файл. Строковая переменная будет иметь разный текст, разной длины. Неужели нет решения?
Разумеется есть.
http://yandex.ru/yandsearch?text=%D1...1%2B%2B&lr=213
_Bers вне форума Ответить с цитированием
Старый 03.07.2013, 08:44   #9
Sem2001
 
Регистрация: 26.06.2013
Сообщений: 9
По умолчанию

нет примеров с поставленной задачей. везде изначально указан размер.
Sem2001 вне форума Ответить с цитированием
Старый 03.07.2013, 09:57   #10
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
Неужели нет решения?
Напрашивается же простейшее решение: в структуре хранить текущий размер массива...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить размер структуры stpdqstns Общие вопросы C/C++ 10 30.01.2013 19:02
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Размер структуры имеет значение? ImmortalAlexSan Общие вопросы C/C++ 0 04.06.2011 16:01
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54