首先,很抱歉,因为毫无疑问这些信息存在于 SO 上,但我无法追踪它。
尝试(并且失败)将我的大脑包裹在我想做的一些指针魔术上。在运行时,我想创建一个可以迭代的结构“数组”。
typedef struct {
int length;
const char* location;
} receipt_info;
void testA()
{
receipt_info *receipts;
testB(&receipts);
printf("Receipt 0 length: %i\n", receipts[0].length); // Displays valid value
printf("Receipt 1 length: %i\n", receipts[1].length); // Displays invalid value
}
void testB(receipt_info **info)
{
*info = malloc(sizeof(receipt_info) * 2);
info[0]->length = 100;
info[1]->length = 200;
}
在此示例中,我将其硬编码为 2,但 IRL 将由外部因素决定。
我应该在这里做些什么不同的事情?