0

これがコードです。

int main(int argc, char *argv[])
{
    char name[5];

    printf("%s\n",name);

    system("PAUSE");
    return 1;
}

printf関数は©を出力します。なぜそのキャラクターを使用するのですか?異なる例では、他の文字が使用されます。Cでメモリがどのように機能するかについてもっと理解しようとしています。

乾杯 :)

編集 - みんなありがとう。あなたのすべての答えは私にとって非常に役に立ちました。

4

4 に答える 4

1

は関数内で宣言されているためarray、初期値は未定義です。arrayがグローバルであると宣言された場合、すべてzeroの に初期化されます。規格草案から、セクション6.7.9.10

自動保存期間を持つオブジェクトが明示的に初期化されていない場合、その値は不確定です。

于 2013-04-26T12:00:46.637 に答える
0

標準ではundefinedです。つまり、何でもかまいません。特定の値であることを確認したい場合は、自分で設定する必要があります (例: を使用memset())。

これは、一部のコンパイラが特定の値に設定する可能性があるという意味ではありません。

于 2013-04-26T12:00:41.980 に答える
0

ユニット化された配列の使用は未定義の動作であるため、pritntf 呼び出しは、アプリのクラッシュなどの結果につながる可能性があります。実際には、スタックからガベージを出力します。

于 2013-04-26T12:01:11.060 に答える