received_data
是长度为256的全局 char array
。它包含偏移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
?
答案 0 :(得分:4)
你需要这样做:
*mem = &received_data[rx_pos_p];
您想要在指针指针中返回指针,因此您必须取消引用它。
答案 1 :(得分:1)
mem应该是什么类型,即** mem或* mem?
因为mem是指向指针的指针
* mem是指向字符的指针(例如数组的第一个字符的地址)
** mem是一个字符,相当于(* mem)[0]