我正在尝试解决一个函数,该函数将创建一个新的struct对象,然后将其放入动态数组中。我已经尝试了多种变体,但是我一直遇到各种问题。这就是我现在正在使用的内容,但是遇到内存访问问题。

typedef struct  {
    int keynr;
    int access;
    time_t lastused;


} keycard;

void keyCreate(keycard *cardList, int keyid) {
    cardList[keyid].keynr = keyid + 100;
    cardList[keyid].access = 1;
    cardList[keyid].lastused = 0.0;
    }

int main () {
    keycard *cardList = 0;
    cardList = malloc(sizeof(keycard) * 1);
    keyCreate(&cardList, 0);
    printf("%d", cardList[0].access);


这段代码给了我:引发异常:读取访问冲突。
cardList为0x64。

我一直在阅读很多有关指针和内存分配的信息,但显然我缺少一些..

最佳答案

如果要向阵列动态添加新卡,则需要将其包装在另一个数据结构中:

09-05 18:44