[英]How to return 2 char pointers from function?
我需要創建一個 function ,它接受一個pointer to part of a string
的指針,並返回一個指向字符串中first word in the string
開頭的指針和一個指向string after the word
字符串的指針。
單詞的字符被定義為大寫和小寫字母,以及像'-'這樣的字符。
主要是,我不確定我們如何從 function 返回兩個指針。
我對指針也沒有最好的掌握,所以我正在尋找關於像這樣的 function 可能是什么樣子的任何提示。
第一種方法
一種方法是在 function arguments 中返回結果(通過取消引用他需要在調用語句中提供的被調用者指針)
void process_my_string(const char* userString, char** ptr_firstWord, char** ptr_stringAfter);
我們怎么稱呼它?
char* pfirst = NULL;
char* plast = NULL;
const char* str="hello c pointers";
process_my_string(str, &pfirst, &plast);
第二種方法
其中一個指針將在返回值中返回,另一個在 function 傳遞的參數中(如第一種方法):
char* process_my_string(const char* userString, char** ptr_stringAfter);
我們怎么稱呼它?
char* pfirst = NULL;
char* plast = NULL;
const char* str="hello c pointers";
pfirst = process_my_string(str, &plast);
第三種方法
返回structure
或指針array
中的指針(兩者)。 我選擇在下面的s_return
結構中返回:
typedef struct{
char* p_first;
char* p_after;
} s_return;
現在 function 變為:
s_return process_my_string(const char* userString);
我們怎么稱呼它?
const char* str="hello c pointers";
s_return my_return = process_my_string(str);
/*access the pointers*/
printf("%s\n", my_return.p_first);
printf("%s\n", my_return.p_last);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.