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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

esp8266 sprintf函數(shù)使用溢出問題

2019-11-11 01:27:19
字體:
供稿:網(wǎng)友

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

還有一個出現(xiàn)重啟的原因是存儲字符串?dāng)?shù)據(jù)的數(shù)組定義的過小,通過sprintf函數(shù)的返回值來判斷需要給數(shù)組開辟多大的空間。

下面是例子:

#define BUFF_SIZE         9

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

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


上一篇:異常(二)

下一篇:異常(一)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 无为县| 磐安县| 吴旗县| 安丘市| 克东县| 洛阳市| 祁门县| 佛山市| 延庆县| 墨竹工卡县| 桦甸市| 柘荣县| 临武县| 光山县| 莆田市| 历史| 淮滨县| 丹阳市| 曲水县| 义乌市| 铜川市| 新巴尔虎右旗| 金沙县| 怀来县| 洛阳市| 荆门市| 大理市| 家居| 万山特区| 三都| 姚安县| 应用必备| 黔东| 松阳县| 蚌埠市| 行唐县| 宁蒗| 乌苏市| 和硕县| 武乡县| 乌苏市|