Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以下の例では、初期化されていない char 配列を定義し、長さを調べたい場合、未定義の動作です。
#include<stdio.h> int main() { char a[250]; printf("length=%d\n",strlen(a)); }
「0」になりました。方法がわからない?説明する。
幸運。運が良いか悪いかは意見の問題です。配列の内容は、たまたまそのメモリを占有していたものであり、初期化されていません。あなたの場合、最初のバイトが'\0'.
'\0'
もちろん、これは未定義の動作であり、このように発生することに依存することはできません。