-10

構造体へのポインタの配列の要素にアクセスしたいのですが、アクセス方法がわかりません。

#include<stdio.h>
int main()
{
struct hash
{
int pages;
int price;
};
struct hash *h[5]={1,2,3,4,5};//array of pointer to structure
printf("value =%d\n",h->pages);
// want to access and also tell me how to data will be write
}
  How we will access the element I tried it through pointer but it's showing error
4

3 に答える 3

1

コンパイルするサンプルを次に示します。たぶん、これはあなたが始めるのに役立ちます.

#include <stdio.h>
#include <stdlib.h>

struct hash
{
int pages;
int price;
};

struct hash h[5]=
{
    { 1, 1 },
    { 2, 2 },
    { 3, 3 },
};

int main(void)
{
    printf("pages: %d\n", h[0].pages);
    printf("pages2: %d\n", h[1].pages);

    return EXIT_SUCCESS;
}
于 2013-06-14T13:33:32.833 に答える
1
#include <stdio.h>
#include <stdlib.h>

int main()
{
    struct hash {
        int pages;
        int price;
    };
    struct hash *h[2];
    h[0] = malloc(sizeof(struct hash));
    h[0]->pages = 1;
    h[0]->price = 2;
    h[1] = malloc(sizeof(struct hash));
    h[1]->pages = 3;
    h[1]->price = 4;
    printf("value = %d\n", h[0]->pages);
}
于 2013-06-14T13:35:16.443 に答える
1

stuct hash *h;最初に、単一の変数を指すようにすることをお勧めします。それが機能したら、その上に構築して、配列をstruct hash *h[5]機能させる必要があります。

于 2013-06-14T13:35:20.177 に答える