C
1char *p[5] = { 2 "fjioauuqpeiowqiepweee", 3 "ewqeuqwe8w7qew", 4 "vmsc;aiwoequreytqewqe", 5 "vklauskdruoytiyrieqwqqaaaaaa", 6 "gggggggggg" 7 };
こちらは問題がありません。
これらの文字列の実体は静的記憶期間に存在し、各文字列の先頭アドレスをp[0], p[1] ... のポインタに入っている
これで正しいですよね?
C
1char (*p)[200] = { 2 "fjioauuqpeiowqiepweee", 3 "ewqeuqwe8w7qew", 4 "vmsc;aiwoequreytqewqe", 5 "vklauskdruoytiyrieqwqqaaaaaa", 6 "gggggggggg" 7 };
今度こちらにすると、エラーになります。
error C2078: too many initializers
warning C4047: 'initializing': 'char (*)[200]' differs in levels of indirection from 'char [22]'
と出てきます。初期化が多すぎるようです。
(*p)[200]の方は、別の2次元配列を宣言しておいて、それを使って、初期化することはできます。
・・・・?
なんで上は大丈夫なのに、下はダメなの??
下の場合、文字列の実体はどこにありますか?
静的記憶期間な予感がするのですが、どうでしょうか??
char (*p)[200] こいつ、扱いにくい・・・です。
どなたか教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。