我正在尝试为我的字符串结构写一个字符串容器,但它不起作用。我觉得我一直在向每个人展示我的代码,并期待一个简单的答案让我继续前进,但我想要的是一个提示或一些指示让我继续前进。现在我不希望这个容器能够容纳除了我之前写的自定义字符串之外的任何其他东西,顺便说一句,这个工作正常。
所有代码都是我的真实字符串结构的简化版本,因为没有必要发布它;我们所处理的只是字符串容器。
header.h
typedef struct string string;
由source.c
struct string {
char *buffer;
unsigned int size;
};
我会这样做:
string ** array_of_strings;
或
string * array_of_strings;
然后我想做类似的事情:
client.c
array_of_strings = (string *) malloc(0);
当我致电malloc(0)
时,我希望有array_of_strings[0]
如果我realloc(1)
我希望它是array_of_strings[1]
。
有没有更好的方法来做到这一点,因为这不起作用?
答案 0 :(得分:1)
如果你想拥有一个字符串的数组,你应该为一个字符串分配内存:
string * array_of_strings;
array_of_strings = malloc(sizeof(string));
然后您可以访问array_of_strings[0]
。
如果你将它声明为string **
,你实际上是指向指向string
的指针,而不是指向string
的指针。