C語言中元素訪問之陣列

2022-01-20 04:24:38 字數 752 閱讀 3027

今天在寫stm32程式時,出現了乙個小問題,現在記錄下來,應該說是自己的c語言基本功不行。加油吧

首先,傳送函式的定義:

1

void rs485_put_bytes(uint8 *buf,uint32 len)

所訪問的結構體的定義:

typedef struct

canrxmsg;

定義乙個結構體變數:

1 canrxmsg rxmessage;
view code

現在rs485_put_bytes()函式要訪問這個rxmessage結構體中的data成員,第乙個引數是指標,我認為下面的方法可行的,結果報錯

1 rs485_put_bytes(rxmessage->data, 8);
結果報錯,

rxmessage->data 不是指標型別
我記得是陣列名是可以當做指標用的,怎麼不行呢?

最後換成了

1 rs485_put_bytes(rxmessage.data, 8);
這回就不報錯了,(後來問一同事,同事說:rxmessage結構體名不能直接當做指標使用,可以使用下面的方法)

1 rs485_put_bytes((&rxmessage)->data, 8);
將結構體名轉換成指標,這樣也通過編譯。

可能在大部分人這都是小問題,我水平還不行,需要努力,加油,謝謝,感謝,

PHP訪問陣列中元素的方法

php中可以通過指定元素的鍵來訪問陣列中的元素,使用整數和變數鍵訪問值沒有問題,但是使用字串型別的鍵可能就有問題了,所以一定要注意。如下面的 先定義兩個陣列 breads array baguette naan roti pita computer array processor muncheron...

R語言中編輯矩陣中元素的方法

在實際資料處理過程中,我們有時需要對資料中的元素進行修改,或刪除矩陣中的某一行或某一列,甚至需要將兩個矩陣進行合併。本文將介紹在r語言中如何實現對矩陣元素的修改操作。以下的操作都是基於這樣的乙個矩陣 m1 matrix c 1 6 nrow 2,ncol 3,dimnames list c r1 r...

C 之vector中元素刪除

今天在刪除vector中的元素中遇到乙個問題,這裡記錄下來以便以後查閱。預備知識 用到了erase 函式,對於乙個容器c來說,假設迭代器為p,那麼執行 c.erase p 之後就刪除了容器c中p所指向的元素,並且返回乙個迭代器,返回的迭代器指向剛才所刪除元素後面的乙個元素 這裡是關鍵 有了上面的知識...