【发布时间】:2013-05-21 09:01:28
【问题描述】:
如果我有两个结构:
typedef struct{
unsigned int time;
double rate;
}quote;
typedef struct{
unsigned int freeSlots;
unsigned int end;
unsigned int start;
unsigned int currSize;
unsigned int maxSize;
unsigned int startAt;
//unsigned int currIndex;
quote quoteBuffer[1];
}cbuf;
我想创建一个函数来修改 cbuf 中的 quoteBuffer 数组的大小,我该怎么做呢?我尝试了几种方法,但到目前为止都没有奏效。我不断返回相同的格式:
quote *newQuoteBuffer = malloc(sizeof(quote) * newSize);
如果我在某个地方已经有一个现有的 cbuf(例如,我们将它称为“a”,其中 a 是指向 cbuf 的指针):
a->quoteBuffer = newQuoteBuffer;
但这显然行不通。有什么提示吗?
【问题讨论】:
-
quote quoteBuffer[1]这有什么意义? -
你不能改变
cbuf结构?那么quoteBuffer是一个指针吗? -
初始化 cbuf 结构中的引号数组。我想我也可以引用quoteBuffer []。但我使用了 1,因为稍后我将使用 malloc 修改大小。
-
最好有一个指向引用的指针而不是数组。
-
@JoachimPileborg 如引用 *quoteBuffer;在 cbuf 结构内部?