我是C的新手,正在尝试创建一个全局数组来保存指向结构的指针:

person* persons[n];

但是,我需要将上面的变量设为全局变量。为此,我需要在所有函数之外声明它。但是我怎么能不知道n是什么呢?真的在这里迷路了,任何帮助都将不胜感激!
以下是我最终要实现的目标:
person* persons[];

function () {
    initialize global array here
}

最佳答案

使用指针的指针并在init函数中调用malloc

person **persons;
int n = 42;

void init(void)
{
    persons = malloc(n * sizeof *persons);
    if (!persons) {
        /* handle malloc failure here */
    }
}

关于c - 如何初始化一个包含指向结构体的指针的全局数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33247224/

10-11 15:09