int main()
{
char a[2][3][3] = {'g','a','t','e','s','q','u','i','z','a','w'};
printf("%s ", ***a);
return 0;
}
このコードは、*** aにSeg Faultを与えます。この配列がどのようにメモリに格納されているかを、メモリダイアグラムで説明してください。もし私が間違っているなら、3行3列の2列の配列を修正してください。また、空のスペースに '/ 0'または不要な値が格納されているかどうかを確認します。メモリモデルダイアグラムでコードのo/pをどのように計算できますか?なぜこれがセグメンテーションフォールトを与えているのですか?
同じ質問がちょうど変更した後、アスカーによって削除されました「%:Cで1つだけのメモリのブロックと、実際に
a
変数は、あなたがこのようにそれを行うことができ、その最初のバイトだけのアドレスでありますs "を"%c "に変更します。それはあなたのために適切ですか?たぶん、尋問者は同じ任務に取り組んでいるあなたの同僚です。 – Yunnosch簡単な答えは、 '*** a'は' char'で、 ''%s "'は正しい書式ではありません。 *エラー:formatは 'char \ *'型を指定しますが、引数に 'char'型* –