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

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

Восстановить пароль Регистрация
 
Котег
 Аватар для Котег
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
14.11.2009, 08:51     Присвоить значение полям динамического массива структуры #1
Здравствуйте, у меня возник такой вопрос:
А как можно присвоить значение полям динамиского масива структуры...
у меня не получилось, в случае ввода с клавиатуры, всё работает, а вот если присваивать с помощью(=) - то ничего не получается...

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;
}
подскажите пожалуйста как правильно присвоить значение ???
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2009, 08:51     Присвоить значение полям динамического массива структуры
Посмотрите здесь:

C++ Присвоить значения полям структуры
Сортировка по полям структуры C++
Как посмотреть значение динамического массива C++
C++ Определить значение первого положительного элемента динамического массива
C++ Добавить значение в конец динамического массива (имитация функции вектора)
C++ Структуры. Присвоить значение переменной a и всем объектам, с ней связанным
C++ Как присвоить полям структуры значение?
C++ Можно ли значения двумерного динамического массива присвоить обыкновенному двумерному массиву?
C++ Присвоить каждому значению массива значение индекса
Первому элементу массива присвоить значение второго C++
C++ В цикле пройти по полям структуры
Присвоить элементу одномерного массива значение другого элемента C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 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;
}
Котег
 Аватар для Котег
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
14.11.2009, 09:27  [ТС]     Присвоить значение полям динамического массива структуры #3
Спасибо =) больше всего подошёл вариант с указателем =)
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 минуту
/*_*/
Yandex
Объявления
17.11.2011, 23:25     Присвоить значение полям динамического массива структуры
Ответ Создать тему
Опции темы

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