1. 程式人生 > >C語言系列之C語言如何返回字串陣列

C語言系列之C語言如何返回字串陣列

問題出在如此

想了一下C語言如何實現返回一個字串陣列,答之:沒有這種功能,但是吧,還是有辦法實現的。

那就是指向陣列的指標

解釋

char **p 這個p就是指向陣列的指標,它指向一個數組的起始地址.
想要引用裡面的陣列時,直接使用p[i] 即可。

我們知道C語言裡面的各種陣列,本質上都是指標,並且函式其實也是不能把陣列當作引數的,實際上都是把陣列的地址傳進去了,實際上就是指向陣列地址的指標。

說了這麼多廢話,那麼我們就實現一下吧。

實現

char **getData(int sz,char **res){
    char **p = (char **) malloc
((sz+1)*sizeof(char *)); // char **p; for(int i=0;i<sz;i++){ p[i] = (char *) malloc(sizeof(char)*20); int temp = rand()%8; //生成8個隨機數 p[i] = res[temp]; } return p; //p是指向指標陣列的指標 }

這樣返回的P就是指向陣列的指標了,實際上就是一個字串陣列

函式解釋:
函式返回一個字串陣列,實際上就是指向陣列的指標,傳進去的是返回的陣列的大小以及一個字串陣列,用來處理資料用。

這個函式完成的功能就是把一個比較小規模的字串陣列,模擬成比較大規模的字串陣列,具體細節是怎麼做的請參照我下一篇文章