Как ссылаться на переменную stuct и intailize с указателем или без него

0
struct aes_key_st {
#ifdef AES_LONG
  unsigned long rd_key[4 *(AES_MAXNR + 1)];
#else
  unsigned int rd_key[4 *(AES_MAXNR + 1)];
#endif
  int rounds;
};
typedef struct aes_key_st AES_KEY;

Вышеприведенный код хранится в samp.h как struct и назначается AES_KEY.

В другом файле с именем samp.ci необходимо получить доступ к вышеуказанному, как указано ниже

int main(void)
{
 AES_KEY enc;

}

Вышеприведенный пример. Мой вопрос:

  1. Как назначить значение переменной enc.
  2. Как назначить значение enc как переменную указателя.
Теги:
pointers
struct
variables

1 ответ

3
Лучший ответ

Ваш вопрос не очень ясен. Однако, учитывая ваш код:

int main(void)
{
  AES_KEY  enc;
  AES_KEY *enc_ptr = &enc;  // make a pointer to enc

  enc.rounds       = 0; // Assign to the 'rounds' field of record AES_KEY
  enc_ptr->rounds  = 3; // Overwrite the 'rounds' field via a pointer


  enc.rd_key[0]      = 1 ; // Assign a value to the first element of the 'rd_key' array
  enc_ptr->rd_key[0] = 2 ; // Overwrite the same element via a pointer

}

Это то, о чем вы спрашивали?

  • 0
    @suuz enc_ptr-> rounds - то же самое, что и (* enc_ptr). Вокруг стрелки "->" это просто сокращенная запись.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню