typedef struct fred {
char mytype[41];
char* myremark;
} fred_t;
のcharポインタへのアクセスその構造体のインスタンスで構成
fred_t* mystruct;
私はMYTYPE
fprintf (stdout, "%s\n", mystruct->mytype);
を印刷することができますが、私は同様の方法でmyremarkを印刷する構文を取得するために失敗しています。
(それは私が修正してる古いコードです。)
してください理由を説明します。 mystruct-> mytypeは[* mystruct] .mytypeです。これはcharです。 myystruct-> myremarkはchar *へのポインタである[* mystruct] .myremarkです。 – Mike
'mytype'は' char'(1文字になります)ではなく、charの*配列*です。 'puts'や' fprintf'のような関数は 'char *'に崩壊します。 Cでは 'char'ポインタ/配列は文字列であることに注意してください。2つのメンバーの基本的な違いは、 'mytype'のためのメモリ内のスペースは構造体自体にあり、' myremark 'が指す文字列のスペースは他の場所(恐らくヒープ内)にあります。 –
これらの両方を扱うと、mytypeで成功するが、myremarkでシグナル11が返されます。 null終端文字がないことを意味しますか? – Mike