国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

esp8266 sprintf函數使用溢出問題

2019-11-11 00:52:01
字體:
來源:轉載
供稿:網友

在使用ESP8266 跑freertos操作系統時,如果使用sPRintf函數進行將其他數據轉換成字符串格式時,如果將存儲字符串的數組定義成局部數組會出現程序跑死然后重啟的問題。為了避免程序跑死問題,需要將存儲字符串數組定義成全局數組或者局部數組用static關鍵字聲明。出現這種問題的原因是在線程切換時數組的地址偏移出現了問題,來回切換地址出現了問題。一般情況下我們定義成全局變量就不會出現這種問題,防止堆棧溢出。

還有一個出現重啟的原因是存儲字符串數據的數組定義的過小,通過sprintf函數的返回值來判斷需要給數組開辟多大的空間。

下面是例子:

#define BUFF_SIZE         9

uint8 signall[BUFF_SIZE];     //定義為全局變量

len = sprintf(signall,"%d,  %d", idx++, wifi_signal);    


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特后旗| 大田县| 肇庆市| 前郭尔| 木兰县| 湟源县| 双鸭山市| 枞阳县| 扎兰屯市| 兴宁市| 碌曲县| 多伦县| 石家庄市| 夏邑县| 高清| 新宁县| 延庆县| 错那县| 南京市| 和林格尔县| 微山县| 荣成市| 台山市| 富民县| 磐石市| 石门县| 社旗县| 建昌县| 老河口市| 西平县| 邵阳县| 富川| 松原市| 安龙县| 临洮县| 改则县| 东源县| 邵东县| 江山市| 招远市| 南皮县|