gpt4 book ai didi

无法用指针数组编译C89

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:33 26 4
gpt4 key购买 nike

我正在尝试编译我的 C89 代码,其中包含一个指向各种其他数组中的位置的指针数组。我不断收到 ERROR (207) Aggregate or union objects may be initialized with constant expressions only,这可能是因为我在初始化时如何定义它,但我真的没有更好的方法来做到这一点除了一次定义一个索引,我宁愿避免这种情况。我已经尝试了所有我能想到的方法,是否有任何方法可以一次定义一行?

uint8_t * keyPtrs[] = {
towers,
towers,
*(towers + 1),
*(towers + 1),
*(towers + 2),
*(towers + 2),
allianceStack
};

最佳答案

在 C89 中,数组的初始值设定项必须在编译时可计算。 See here以获得更详细的定义。

在语言标准的更高版本中,对于自动数组放宽了这一要求(但对于静态数组仍然存在)。

您将不得不使用赋值语句或其他方式来填充直到运行时才知道的值。

关于无法用指针数组编译C89,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57319296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com