- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 329字
- 2020-10-30 17:56:42
2.4.1 字符串處理
《C安全編碼標準》[Seacord 2008].“STR01-C.采用并實現一個管理字符串的一致計劃”建議選擇一種方法來處理字符串并在項目中始終如一地執行。否則,決定權就落到了單個程序員身上,他們很可能采取不同、不一致的方法。可以根據字符串處理函數如何管理內存將它們歸類。下面是3個基本模型:
·由調用者分配,由調用者釋放(C99.OpenBSD.C11 Annex K)
·由被調用者分配,由調用者釋放(ISO/IEC TR 24731-2)
·由被調用者分配,由被調用者釋放(C++std::basic_string)
第一個模型是否比第二個模型更安全這點存在爭議,反之亦然。第一個模型使得何時需要釋放內存這點更加清晰,并且似乎更能防止泄漏,但第二個模型確保有足夠的內存可用(除非調用malloc()失敗)。
第3種內存管理模式,其中被調用者既分配又釋放內存,它是三種解決方案中最安全的一種,但只能在C++中使用。
推薦閱讀
- HTML5+CSS3+JavaScript從入門到精通:上冊(微課精編版·第2版)
- 軟件測試工程師面試秘籍
- Python自然語言處理(微課版)
- Java設計模式及實踐
- EPLAN實戰設計
- PHP 7+MySQL 8動態網站開發從入門到精通(視頻教學版)
- UML 基礎與 Rose 建模案例(第3版)
- ASP.NET開發與應用教程
- TMS320LF240x芯片原理、設計及應用
- 移動互聯網軟件開發實驗指導
- C語言從入門到精通
- Visual C++開發寶典
- Puppet:Mastering Infrastructure Automation
- INSTANT Apache Hive Essentials How-to
- Node.js Web Development