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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Котег
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
#1

Присвоить значение полям динамического массива структуры - C++

14.11.2009, 08:51. Просмотров 560. Ответов 3
Метки нет (Все метки)

Здравствуйте, у меня возник такой вопрос:
А как можно присвоить значение полям динамиского масива структуры...
у меня не получилось, в случае ввода с клавиатуры, всё работает, а вот если присваивать с помощью(=) - то ничего не получается...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
struct cat
{
  char name[20];
  int weight;
};
 
int main
{
 cat *siamec = new cat[3];
 
 cin>>siamec[0].name;            // этот фрагмент работает верно =) значение присваивается;
 //если же заменить на siamec[0].name="Kewa"; - не работает
 
delete []siamec;
return 0;
}
подскажите пожалуйста как правильно присвоить значение ???
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2009, 08:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Присвоить значение полям динамического массива структуры (C++):

Как присвоить полям структуры значение? - C++
Добрый день! У меня есть некая структура, как присвоить ей значение и передать в функцию. Если не трудно, можно на примере: { char...

Присвоить значения полям структуры - C++
Фрагмент программы. не могу присвоить значения полям структуры.почему??? ошибка Lvalue required class laba { int...

Можно ли значения двумерного динамического массива присвоить обыкновенному двумерному массиву? - C++
Столкнулся с проблемой с динамическими массивами, можно ли значения двумерного динамического массива присвоить обыкновенному двумерному...

Как присвоить переменной значение элемента структуры? - C++
Имеется вот такой код, заполнение структуры происходит из файла. Сама структура заполняется верно(через отладчик смотрел). Мне нужно по...

Структуры. Присвоить значение переменной a и всем объектам, с ней связанным - C++
Присвоить значение переменной a и всем объектам, с ней связанным: struct b { double ∗q; int ∗ (∗p); }; struct b ∗∗a; Прошу...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) - C++
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
14.11.2009, 09:07 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
используйте string вместо char
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
using namespace std;
 
struct cat
{
    string name; // 
    int weight;
};
 
int main()
{
    cat *siamec = new cat[3];
 
     siamec[0].name="Kewa";  // всё работает 
 
    delete []siamec;
    return 0;
}
Добавлено через 1 минуту
ну или используйте указатель на чар
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
using namespace std;
 
struct cat
{
    char *name; // или используй
    int weight;
};
 
int main()
{
    cat *siamec = new cat[3];
 
     siamec[0].name="Kewa"; 
 
     cout<<siamec[0].name<<endl;
 
    delete []siamec;
    return 0;
}
Добавлено через 2 минуты
а если уж совсем надо чтобы тока char [20], то так, но это не хороший вариант, если пишите на С++ то лучше не мешать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
using namespace std;
 
struct cat
{
    char name[20]; 
    int weight;
};
 
int main()
{
    cat *siamec = new cat[3];
 
     strcpy(siamec[0].name,"Kewa"); 
 
     cout<<siamec[0].name<<endl;
 
    delete []siamec;
 
    return 0;
}
1
Котег
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
14.11.2009, 09:27  [ТС] #3
Спасибо =) больше всего подошёл вариант с указателем =)
0
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
17.11.2011, 23:25 #4
Пишу на си++ билдер
C++
1
2
3
4
5
6
7
int NE[3];  //кол-во эл-ов по осям х,у,z
struct T_uzel             // структура для узла
{
double X,Y,Z;
int nomer_uzla;
bool rezresh_perem[3];
};
Нужно объявить динамический массив этой структуры. как?
ABC*T_uzel= new T_uzel([NE[0]*NE[1]*NE[2])];
так будет правильно?
Обращаться потом к элементу массива-
ABC[1].X=2.0 правильно?если это записано в начале программы,а обращаться к массиву и присваивать его значения буду в разных ButtonClick-ах

Добавлено через 13 часов 31 минуту
/*_*/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 23:25
Привет! Вот еще темы с ответами:

Почему при создании динамического массива через new ячейки массива имеют значение -842150451? - C++
Я хотел бы узнать почему при создании динамического массива через операцию new ячейки массива имеют значение -842150451. #include...

Как посмотреть значение динамического массива - C++
Друзья изучение С++ привели меня к ужасно непонятным фактам.))) Прошу помочь мне втолковать. Как просмотреть элемент динамического...

Определить значение первого положительного элемента динамического массива - C++
С указателями недавно знаком, помогите решить. Код нужен на С. Дан динамический целочисленный массив y1,y2,....,yn и динамическая ...

Добавить значение в конец динамического массива (имитация функции вектора) - C++
#include &lt;iostream&gt; using namespace std; void show(int **P,int N) //отображение массива { for (int i=0;i&lt;N;i++)...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.11.2011, 23:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru