将指针数组转换为数组

时间:2013-11-04 17:45:39

标签: c arrays pointers

我需要能够将此char *数组[SIZE]转换为char *示例。我怎样才能做到这一点? 我的问题是我需要能够像时尚一样分别管理数组的内容 例如,如果我有:

array[0] = "dog"
array[1] = "cat"
array[2] = "one"

我希望能够通过递增指针的值来访问这些元素中的每一个 像这样

example = "dog"
example++ = "cat"
example++ = "one"

提前感谢!!

我的主要问题是我需要用指针指向所有这些值,这样当我打印我的指针时,生病就像这样:

printf("example: %s\n", example);
output: example: dog cat one

2 个答案:

答案 0 :(得分:3)

您可以这样做:

char **example=array;

当然它不是char *(您在第一行中提到的),但它确实允许您稍后要求的功能。

---编辑--- 此方法无法满足您的printf要求。在C ++中,你可以构建一些满足这两个要求的奇怪对象(但是使用C ++流,而不是printf),但是你应该解释“大图”,整个事情都有很多XY问题。

答案 1 :(得分:1)

您的要求是互相排斥的。

不可能有一个指向零终止字符串的指针数组,这些字符串同时可以“一次性打印”,就像你的printf示例一样。

您必须重新考虑您的方法。你现在想要的是不可能的。