【发布时间】:2012-06-27 18:29:16
【问题描述】:
在 C 中我想要这样的函数:
bool RemoveFirstIndex(char* inArray[])
它进入并取出该数组中的第一个元素。
例如
inArray = "Hello\o", "How\o", "Are\o"
RemoveFirstIndex(inArray)
inArray = "How\o", "Are\o"
不知道该怎么做。
我知道我必须创建一个新的 inSize - 1 数组,然后用除索引 0 之外的所有内容填充它。 但如果我这样做,该函数是否需要返回一个新的 char*[]?是不是有点浪费?
谢谢。
【问题讨论】:
-
反正他问的是C,所以我给了他一个C的答案。
-
无法将
char* inArray[3]转换为char* inArray[2],它们不兼容。这就是您的示例表明您正在尝试做的事情。 -
在 C 中,数组不能调整大小;您不能将 3 元素数组转换为 2 元素数组,反之亦然。如果您真的需要一个可调整大小的数据容器,请考虑实现一个列表结构(或切换到 C++ 并使用像
vector这样的 STL 容器)。