C语言
C语言的特色之一是：语言不负责内存边界检查，这是因为在运行时进行内存边界检查会造成性能问题，与UNIX哲学不符。此特性容易导致缓冲区溢出问题。然而，部分编译器（如英特尔编译器）会出于安全性的考量，提供方法以进行运行时内存边界检查。
BSTR
对于BSTR，NULL与""有相同的语义（Visual Basic引入的语义）。BSTR的长度不包含结尾的\0字节。BSTR必须用SysAlloc*操作系统API申请与释放。 C程序語言本身原並不支援字串資料結構。字符串通常以一個字符數組（或稱陣列）或一個指向字符資料的指標來表達。由於C語言的數組不包含其長度的資訊，故亦無法表示所載之字符串之長度。C語言社群對此通用之解決方案為於字符串末端增添一數值0的字符。C語言的標準程序庫中的字符串處理功能亦以此為基礎。C-Style 字符串特點為不直接包含長度資訊。要取得字符串之長度，就必須從頭到尾數算字符數目，直到遇到字符0為止。由於不設長度資訊，故C-style 字符串的長度理論上可以無上限。 Pascal程序語言採取另一種方向處理字符串。在儲存字串的記憶空間的開首，儲存一固定長度整數以表達其長度。如此Pascal-style 字符串不需要在最後增添額外字符以標明其結束。但由於字符串開首儲存字串長度的空間有限，故Pascal-style 的字串長度有上限。但在獲得字串長度方面有速度優勢。