これが私のコードです:
void func(char c)
{
char * ptr = &c;
size_t len = strlen(ptr);
printf("len - %d\n", len);
}
len
は常に 1 として出力されます。
strlen(..)
配列の最後にchar
あるヌル文字 ( ) を見つけることによって、配列の長さを決定します。\0
ここでptr
は、1 文字 ( c
) のアドレスだけで初期化されます。c
null 文字が含まれていません。長さはどのようにptr
取得しますか?