0

以下の例では、初期化されていない char 配列を定義し、長さを調べたい場合、未定義の動作です。

#include<stdio.h>
 int main()
{
char a[250];
printf("length=%d\n",strlen(a));
}

「0」になりました。方法がわからない?説明する。

4

4 に答える 4

6

幸運。運が良いか悪いかは意見の問題です。配列の内容は、たまたまそのメモリを占有していたものであり、初期化されていません。あなたの場合、最初のバイトが'\0'.

もちろん、これは未定義の動作であり、このように発生することに依存することはできません。

于 2013-06-11T16:03:24.997 に答える