Как инициализировать массив указателей на структуры? - PullRequest
3 голосов
/ 26 июля 2011

У меня есть массив указателей на структуру. Могу ли я инициализировать их все в NULL, как показано ниже ??

struct hash
{
    int bid;
    struct hash *prev,*next,*fl,*fr;
};

struct hash *h[4]={NULL,NULL,NULL,NULL};

Ответы [ 4 ]

7 голосов
/ 26 июля 2011

одного NULL (или одного 0) будет достаточно, поскольку 0 преобразуется в NULL при назначении указателям

struct hash *h[4] = {0};

дополнительная информация: первый элемент будет инициализирован первым предоставленным значением. остальные получат 0 по стандартам. какая часть, раздел стандартов? я понятия не имею, но вы можете найти это где-то в стандартах.

1 голос
/ 26 июля 2011

Вы также можете использовать

struct hash *h[]={0,0,0,0};
1 голос
/ 26 июля 2011

Да!

T *t[] = {NULL, NULL};

Работает для каждого T.

0 голосов
/ 14 июня 2013

Я думаю, что это будет работать

int main()
{
  struct hash
  {
    int bid;
    struct hash *prev,*next,*fl,*fr;
  };
struct hash *h[5]={0};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...