2013-11-04 149 views
0

我需要能夠將此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 
+0

你不能那樣做。 – Barmar

回答

3

你可以簡單地做:

char **example=array; 

當然這不是char *(你在第一行中提到過),但它確實允許你稍後要求的功能。

---編輯--- 您的printf需求無法滿足此方法。在C++中,你可以構建一些滿足這兩個需求的奇怪對象(但是使用C++流而不是printf),但是你應該解釋一下「全局圖」,這個事情嗅到了很多XY問題。

+0

我以這種方式遇到的問題是我得到了分段錯誤。我怎樣才能避免獲得seg錯誤? – Hous3aholik

+0

@ user2913269:我怎麼知道?這完全取決於你的代碼的其餘部分。 –

+0

@AndreyT:我的答案發布後,已添加該要求。 –

1

您的要求是相互排斥的。

不可能有一個指向零終止字符串的指針數組,它可以同時打印爲「一次性」,如在您的printf示例中。

您將不得不重新考慮您的方法。你想在這一點上是不可能的。