アホな発想
長さが分からない/NULL終端が保証されていないchar型配列に対してstr系の関数を使うことは大変危険な訳です。そこでstr系関数に掛ける前にチェックする方法を考えてみました。
(考えた、ぢゃなくて仕事でやったコードからのピックアップでしょうが!!!)
/* チェック */ for( idx = 0, len = 0; idx < EXPECTED_MAX_LEN; idx++ ) { if( string[idx] ) len++; else break; } if( len < EXPECTED_MAX_LEN ) { /* この中ではstringに対してstr系関数を使用しても一応、大丈夫? */ }
と、以上のように息巻いて思いついてみたものの、よく考えたらstrn系関数という選択肢を失念していました。あと、正直ダサいな、これ。
後になって振り返ってみたときの自虐用に。