c文字列に10バイトを割り当てようとしましたが、何も割り当てずに印刷しました。そして、cstringのサイズで印刷しました。しかし、結果は私が思っていたものとはかなり異なっていました。mallocはrawメモリのみを割り当てるので、ジャンク値を出力すると思いました。そして、c文字列のサイズを超えて印刷しようとしたので、動作は未定義である必要があると思いました。しかし、それらはすべてヌル文字を出力しました。これが私のコードだと思います。
int main(void)
{
int i;
char * c = (char *)malloc(10);
for(i=0; i<20; ++i)
{
printf("%c.\n", *(c+i));
}
return 0;
}
そして、私は「。」の20行を見ました。誰かがこれを説明できますか?私はこれをLinuxで実行し、最新バージョンのgccを使用しましたありがとうございます