【问题标题】:How do I initialize a pointer to an Array of structure如何初始化指向结构数组的指针
【发布时间】:2020-12-05 11:04:48
【问题描述】:
#define X 10
#define Y 10

我的结构:

typedef struct Reservation {
    char NAME[10];
    int ID;
    int N;
    int RESERVE;
    int POSX;
    int POSY;
} Reservation;

我的变量声明:

struct Reservation* s[X][Y];

我正在寻找一种方法来初始化我的变量。

【问题讨论】:

  • 您的变量s 是指向Reservation 的指针的数组大小Y 的数组大小X。即,它是一个指针数组。这真的是你想要的吗?
  • 这样做有什么问题吗?因为变量声明是在赋值中给出的。
  • 谢谢,为了改变结构内部的变量?我正在使用:strcpy(*s[0][0]->NAME, "Lena");。但它给了我一个未处理的异常......访问冲突写入位置。

标签: arrays c pointers struct


【解决方案1】:

它不是指向结构数组的指针。它是指向 struct 的数组 od 指针。

#define X 2
#define Y 2

typedef struct Reservation {
    char NAME[10];
    int ID;
    int N;
    int RESERVE;
    int POSX;
    int POSY;
} Reservation;

struct Reservation s1,s2,s3,s4;

struct Reservation a[X][Y] = {{{0,},{0,}},{{0,},{0,}}};

// array of pointers to struct
struct Reservation *s[X][Y] = {&s1, &s2, &s3, &s4};

// pointer to array of structs
struct Reservation (*sa)[X][Y] = &a;

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多