[英]Pointer Confusion
received_data
是一個全球性的 char array
長度256的它包含一個串在偏移rx_pos_p
即received_data[rx_pos_p]
我想通過指針mem
返回此字符串的地址,但是我認為我在犯錯。 我寫的功能如下:
uint8_t get_bytes(char **mem, uint8_t len){// Be watchful pointer to a pointer
if(bytes_received() >= len){
mem = &received_data[rx_pos_p]; //(char *)( received_data + rx_pos_p );
return 0;
}
else
return FOO;
}
mem
的類型應該是什么,即**mem
或*mem
?
您需要做:
*mem = &received_data[rx_pos_p];
您要在指針指針中返回指針,因此必須取消引用它。
mem的類型應該是什么,即** mem或* mem?
由於mem是指向指針的指針* mem是指向字符的指針(例如數組的第一個char的地址)
** mem是一個字符,等效於(* mem)[0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.