【发布时间】:2015-12-01 17:58:17
【问题描述】:
我目前正在编写一个复杂的函数,这让我花了很多时间来构思。这个函数使用了一个类型为“struct foo*”的数组,它之前是这样定义的:
struct foo** array_of_pointers = NULL;
为了让代码更容易理解,我决定将定义改为:
struct foo* array_of_pointers[] = {NULL};
(赋值是为了使它成为一个强符号)
但现在问题就在这里:
array_of_pointers = (?) calloc(256, sizeof(struct foo*));
直觉上,我将“?”替换为“struct foo* []”。这看起来很奇怪,实际上会导致编译器错误:“cast指定数组类型”。
所以我的问题是:有谁知道应该放置什么而不是“(?)”?
【问题讨论】:
-
struct foo**?数组仍然是指针... -
另外 - 我相信(可能是错误的)
sizeof *array_of_pointers更可取,但这可能是风格上的。