2012-05-23 61 views
1

如何初始化c中沒有指針的三維空間char並訪問它?
我試過如下:如何在不使用指針的情況下初始化三維字符數組c

char card[1][3][15]={    
         {"iron","man"}, 
         {"contagious","heide"}, 
         {"string","middle"} 
        }; 

但我正在逐漸

**Error:too many initializers** 
    **Warning: Array is only partially initialized** 
+0

它以給予好評我需要至少在15點聲望。這是說,我爲什麼不能upvote答案.. – Neha

回答

2

考慮您的例子本身:

我覺得應該是

char card[1][3][15]={ {"iron","man", "contagious"}}; 

這意味着什麼,你可以有效地創建3個字符數組長度每15.你的第1尺寸不有很大的作用。

所以,你可以把它像

char card[2][3][15]={ {"iron","man", "contagious"}, 
         {"iron","man", "contagious"}}; 

因此,對於您簡單的瞭解,行數表示第一維,列各行中的數字表示第二個維度和元素的數量(在這種情況下,字符)表示第三維。

所以,現在你可以看到,在你的問題中的數據,你應該聲明數組作爲char char[3][2][15]

+0

非常感謝這是我正在尋找的答案...我不能upvote較少聲譽點的抱歉.. – Neha

+0

@Neha,最受歡迎。您也可以通過點擊投票圖標下方的接受圖標來接受答案。 – Jay

3

讓我們舉一個簡單的例子。你可以用它代替這些整數自己的價值觀:

聲明:

int arr[2][3][4] = { { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} }, 
        { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} } }; 

我希望,這很清楚。

0
char card[1][3][15]={ { {"iron","man"},{"contagious","heide"},{"string","middle"}} 
        }; 

你應該把另一個括號括號內。我認爲這對你會有所幫助。