Пусть struct_name
это имя структуры я определил, и массив является членом в структуры определяется как char array[o]
Работа с C в структурах
что делает следующая строка производить? (*struct_name).array
Адрес местонахождения?
Пусть struct_name
это имя структуры я определил, и массив является членом в структуры определяется как char array[o]
Работа с C в структурах
что делает следующая строка производить? (*struct_name).array
Адрес местонахождения?
да (при условии, struct_name является указателем на вашей структуры, в противном случае Разыменование просто не имеет смысла)
Кстати, почему бы не сделать struct_name-> массив?
Если вы определили 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;
Тогда вы не знаете, что вы хотите.
массив [o] - это своего рода хак ... – user133466
возможно, но это ужасно полезно :) – 246tNt
Это действительно массив [o] или вы имели в виду массив [0]? (т. е. нуль, а не идентификатор «letter-oh»). Если последнее «o» - действительно плохое имя для идентификатора. Кроме того, вместо описания кода «Предположим ...», почему бы просто не опубликовать код напрямую, поэтому нам не нужно «предполагать» что-нибудь? – Clifford