對於我正在處理的任務,我需要使用函數來處理字符串數組中的數據。所以真的是一個字符數組的數組。我這樣定義數組:將一個指向字符數組的數組的指針傳遞給一個函數?
char strings[5][100];
所以在內存中大概有500個連續的字符。我已經定義函數如下:
void foo(char *labels[100]);
我想我可能有一些語法問題在這裏,但我認爲這是做的是說,「我期望一個指針數組的功能100個字符。「所以labels*
會指向第一個字符數組,而(labels + 1)*
會指向第二個數字,依此類推。我打電話的功能是這樣的:
foo(&strings[0]);
我覺得這是什麼做的是抓住字符的第一陣列的地址strings
。我收到的錯誤消息告訴我函數預計char **
,但參數是char (*)[100]
。這讓我感到困惑,因爲我沒有指定指向char
指針的指針。
任何幫助是極大的讚賞,或者如果你能pointer
我在正確的方向:)
在大多數情況下,包括函數參數,'&strings [0]'與純字符串''完全相同。 – pmg 2011-03-12 00:11:46