ヌル終端文字列
実装が単純であるために、この表現にはエラーとパフォーマンス問題の傾向がある。
ヌル終端文字列は歴史的にコンピュータセキュリティ上の問題を作ってきた。文字列を宣言するときにヌル文字のための領域を割り当て忘れると、最大の長さの文字列を格納したときにヌル文字が隣接したメモリ領域に書かれてしまう。ヌル文字を格納し忘れるのもバグの原因となる。プログラムのテスト時に、以前そのメモリ領域を使った時のヌル文字が偶然残っていると、そのバグを見つけられないことがある。文字列を固定サイズのバッファへコピーする際に、多くのプログラムではバッファのサイズを気にしていない。そして、コピーする文字列がバッファサイズより長いとバッファオーバーランを引き起こす。
文字列にヌル文字 ('\0') を格納できないので、文字列データとバイナリデータは明確に分けておき、それぞれ異なる関数で取り扱う必要がある。
文字列長を求める際の速度の問題は、他の計算量 O(n) の操作と組み合わせて使用することで軽減される。strlcpyの実装はそのようになっている。