Работа со структурами в C - PullRequest
0 голосов
/ 01 ноября 2009

Предположим, struct_name - это имя структуры, которую я определил, а массив - это член в структуре, определенной как char array[o]

что производит следующая строка? (*struct_name).array адрес места?

Ответы [ 2 ]

1 голос
/ 01 ноября 2009

Если вы определили struct_name как экземпляр вашей структуры, например:

struct your_struct struct_name;

Вы хотите struct_name.array, который даёт адрес для члена array. Если вы определили struct_name как экземпляр вашей структуры, например:

struct your_struct *struct_name;
struct_name = malloc(sizeof(struct your_struct));

Вы хотите struct_name->array, который также возвращает адрес array.

Если вы определили struct_name как имя самой структуры следующим образом:

typedef struct _struct_name {
    char array[5];
} struct_name;

Тогда вы не знаете, чего хотите.

1 голос
/ 01 ноября 2009

да (при условии, что struct_name является указателем на вашу структуру, иначе разыменование просто не имеет смысла)

Кстати, почему бы не сделать имя_структуры-> массив?

...