C

デバッグ、リリースstrlenおよびsizeof



Debug Release Strlen



1、c / c ++

文字配列に初期値が割り当てられていない場合、strlen(str)のデバッグバージョンとリリースバージョンでは結果が異なります。



割り当てられるsizeofは何でも。

#include using namespace std void main() { char str[10] cout << str << endl cout << 'len is ' << strlen(str) << endl cout << 'len is ' << sizeof(str) << endl getchar() }






同じ結果をデバッグしてリリースするために、変数は最終定義の後に初期化されます。そうしないと、プログラムが間違っている可能性があり、そこで問題を見つけるのが困難になります。



strlenとsizeofの詳細については、Microsoftの公式ドキュメントを参照してください。

MSDN: strlenのサイズ


strlen

strlenが行うのは、カウンターの作業だけです。メモリ内の特定の位置(文字列の先頭、中央の特定の位置、または不確定なメモリ領域)から最初の文字列の終了文字「 0」に到達するまでスキャンを開始し、その後、カウンター値(長さには「 0」は含まれません)。

のサイズ
C言語では、関数ではない式のデータ型または長さを決定します。バイト数の計算は、プログラムの実行中だけでなく、プログラムのコンパイル時に実行されます。

二、 sizeofとstrlenの違い