使用字符串大小在C中声明数组大小?

时间:2014-05-23 13:56:03

标签: c arrays string

假设我有两个字符串大小sizeA和SizeB,我可以使用它们来创建如下所示的数组:

    char str[sizeA+sizeB];

我希望数组是一维的,并且sizeA和sizeB的大小相结合。我该怎么做呢?

谢谢!

2 个答案:

答案 0 :(得分:2)

是的,没关系。

它被称为variable-length array,并在C99中添加。

如果您打算在该数组中创建实际字符串,则需要+ 1作为终结符。

如果这是在函数内部并且您打算返回新数组,则必须通过malloc()使用堆分配。

答案 1 :(得分:1)

如果使用不支持C99的编译器,并且sizeAsizeB不是常量,则不能这样做。您可以确定对于所有情况都足够大的大小,或者您可以使用malloc

动态分配具有正确大小的缓冲区