2016-06-16 4 views
-2

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

struct example 
{ 
double qe[2]; 
double qw[2]; 
}; 

double a[2], b[2]; 

struct example1 ={a,b}; 

Как напечатать [0] для примера? Как напечатать [0] с помощью указателя на пример структуры1?

+0

'struct example1 = {a, b};' недействительный синтаксис. – MikeCAT

+0

'a [0]' не является членом массива _inside_ a structure ........... –

+0

_Пожалуйста, уточните вашу конкретную проблему или добавьте дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. См. Страницу «Как спросить» для получения справки об этом вопросе._ –

ответ

2

Прежде всего,

struct example1 = ...; 

неверен. Вы должны использовать:

struct example example1 = ...; 

Даже тогда, вы не можете использовать

struct example example1 = {a,b}; 

для инициализации example1. Это синтаксически неверно. Вам нужно будет использовать другие методы для копирования содержимого a и b в example1.

Если example1 имеет продолжительность автоматического хранения, вы можете использовать

Метод 1:

struct example example1 = { {a[0], a[1]}, {b[0], b[1]} }; 

В противном случае, вы будете использовать:

Способ 2:

struct example example1; 

В некоторой функции:

example1.qe[0] = a[0]; 
example1.qe[1] = a[1]; 
example1.qw[0] = b[0]; 
example1.qw[1] = b[1]; 

или Метод 3:

struct example example1; 

В некоторой функции:

memcpy(example1.qe, a, sizeof(a)); 
memcpy(example1.qw, b, sizeof(b)); 
+0

Как насчет Пример примера примера1 = {a, b} ;? – klippklar

+0

@klippklar, это синтаксически неверно. В этом контексте 'a' и' b' оценивают 'double *', а не 'double [2]'. –

+0

Вы не можете использовать 'struct example1'. Используйте пример примера struct1. – MikeCAT

0

Благодаря R Sahu, я увидел свою ошибку. Это было действительно неправильное объявление массивов и привязка к структуре. struct example example1 = { {a[0], a[1]}, {b[0], b[1]} }; работал.

+0

Вы должны принять мой ответ и оставить то, что вы описали здесь, в качестве комментария. –

Смежные вопросы