台灣最大程式設計社群網站
線上人數
1500
 
會員總數:239370
討論主題:185708
歡迎您免費加入會員
討論區列表 >> C/C++ >> 想詢問一些有關於指標的概念
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
想詢問一些有關於指標的概念
價值 : 50 QP  點閱數:189 回應數:0

樓主

luckbook222
門外漢
0 6
73 0
發送站內信

我目前在做實驗的時候遇到一些問題
簡單的說就是透過網路模擬軟體模擬節點的傳輸(zigbee)
想詢問有關於一些有關於指標的概念

我現在在sicslowpan.c的send_packet中做了判斷預計要傳送封包(flen)
在發送時flen的值都能正常顯示,並且我用指標做儲存。
分別將各個節點的flen儲存在每個指標中,程式碼大概如下
if(node_id==1) *(flen_ptr+1)=flen;←如果是1號節點發送就將其存入第一個指標
if(node_id==2) *(flen_ptr+2)=flen;←如果是2號節點發送就將其存入第一個指標
if(node_id==3) *(flen_ptr+3)=flen;←如果是3號節點發送就將其存入第一個指標

並在sicslowpan.c的input中做了flen的解析(之後會嘗試將其移至contiki,目前先式在同之程式內呼叫),在程式碼中先做了sender節點的分析,程式碼大概如下
if(((uint8_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER))[7]==3){//判斷的部分確定沒問題
printf("node[1] *flen_ptr=%0X\n",*(flen_ptr+1));
printf("node[2] *flen_ptr=%0X\n",*(flen_ptr+2));
printf("node[3] *flen_ptr=%0X\n",*(flen_ptr+3));
}

因為這支sicslowpan.c 在每個節點都會跑,因此當有節點有接收到封包時,就會將其印出。目前傳輸架構是node_3→node_2→node_1。現在遇到的問題是,我預期當node_3發送資料,照理來說應該將預計傳輸封包的數量存入*(flen_ptr+3)這個裡面,之候node_2收到後應該會顯示
node[1] *flen_ptr=0
node[2] *flen_ptr=0
node[3] *flen_ptr=5←假設預期要傳5個封包

可實際上node_2接收到顯示
node[1] *flen_ptr=0
node[2] *flen_ptr=0
node[3] *flen_ptr=0

這部分我不太了解,我有確認過記憶體位址,不論是3、2、1號節點在flen存入時都是相同的記憶體位址
但是不論怎麼存,在node2接收到flen的值都會顯示0,這是我目前遇到的問題,希望各位大大可以幫忙解惑。

搜尋相關Tags的文章: [ 指標 ] ,
本篇文章發表於2017-02-02 15:53
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
[ 變換順序 ]   

回覆
如要回應,請先登入.