powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Структуры (помогите тупому)
9 сообщений из 9, страница 1 из 1
Структуры (помогите тупому)
    #33088366
_no_na_me_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <stdio.h>

struct my_struct {
 char name[ 20 ];
 int age;
};

void main(void){
  struct my_struct ms;
  ms.name = "aaa";
  ms.age =  4 ;
  printf("%s %d", ms.name, ms.age);
}
Пытаюсь скомпилить - никак, мол lvalue required in function main() на строке ms.name = "aaa";. Если не так, то как же тогда занести в поля значения?
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088397
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strcpy(ms.name, "aaa");

Читай в учебнике главу про массивы.
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088404
_no_na_me_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно, но в учебнике здесь используется простое присваивание. Однозначно, чего-то не догоняю
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088426
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если имеется в виду вот этот кусок, то в нем ошибка.

В приведенном ниже примере идентификатор student описывается как тег структуры:
struct student { char name[25];
int id, age;
char prp; };

Тег структуры используется для последующего объявления структур данного вида в форме:

struct тег список-идентификаторов;
Пример:
struct studeut st1,st2;
Использование тегов структуры необходимо для описания рекурсивных структур. Ниже рассматривается использование рекурсивных тегов структуры.

struct node { int data;
struct node * next; } st1_node;

Тег структуры node действительно является рекурсивным, так как он используется в своем собственном описании, т.е. в формализации указателя next. Структуры не могут быть прямо рекурсивными, т.е. структура node не может содержать компоненту, являющуюся структурой node, но любая структура может иметь компоненту, являющуюся указателем на свой тип, как и сделано в приведенном примере.

Доступ к компонентам структуры осуществляется с помощью указания имени структуры и следующего через точку имени выделенного компонента, например:

st1.name="Иванов";
st2.id=st1.id;
st1_node.data=st1.age;


char name[25]; // объявление массива. Под него уже выделяется память.
st1.name="Иванов"; // Указатель name будет показывать на константу в сегменте статичных данных.
Указатель и массив это очень разные вещи.
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088649
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мона сделать char *name; потом - new, delete и srtcpy по вкусу.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088662
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoмона сделать char *name; потом - new, delete и srtcpy по вкусу.
Нельзя. Зато можно сделать char *name; потом - malloc(), free() и srtcpy() по вкусу.
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088801
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl maXmoмона сделать char *name; потом - new, delete и srtcpy по вкусу.
Нельзя. Зато можно сделать char *name; потом - malloc(), free() и srtcpy() по вкусу.

А new и delete по-вашему --- никак?
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33088921
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelikk White Owl maXmoмона сделать char *name; потом - new, delete и srtcpy по вкусу.
Нельзя. Зато можно сделать char *name; потом - malloc(), free() и srtcpy() по вкусу.

А new и delete по-вашему --- никак?

Это уже будет C++, а не С.
...
Рейтинг: 0 / 0
Структуры (помогите тупому)
    #33089788
Олег123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята чёто вы тут замутили . Вот так всё работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <stdio.h>

struct my_struct {
 char *name;
 int age;
};

void main(void){
  struct my_struct ms;
  ms.name = "aaa";
  ms.age =  4 ;
  printf("%s %d", ms.name, ms.age);
}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Структуры (помогите тупому)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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