最速怪談選手権

下記のC言語のソースでワーニングのエラーが出ます。実行は出来ますが。
1. #include <stdio.h>
2. int main(void){
3. const static char *wday[3]={
4. "sunday"
5. ,"monday"
6. ,"tuesday"
7. };
8. char **p;
9. p=wday;
10. ++p;
11. printf("%s\n",*p);
12. return 0;
13. }

gcc -o 04.exe 04.cで、下記のエラーが出ます。
04.c:In function 'main':
04.c:9: warning:assignment from incompatible pointer type

実行は正常で、mondayを表示します。
ワーニングの意味は、互換性の無いポインターの型が組み込まれていると言う事でしょうか。

この意味が分からないのと、ではこのエラーが出ない様にするにはどこをどう直せば良いのかと
言うのが分かりません。

宜しくご指摘をお願いします。

A 回答 (2件)

const char *と char * は互換性が無いので、8行目を


const char **p;
に変えれば良いかと。
    • good
    • 0
この回答へのお礼

うっかりしていました。最初から問題無いと思っていましたので他に問題が有ると思い見過ごしていました。ご指摘有難う御座いました。今後の参考にさせて頂きます。早速のご返事有難う御座いました。

お礼日時:2015/08/15 05:38

ワーニングの意味は、互換性の無いポインターの型が組み込まれていると言う事でしょうか



はい。その通りです。

wdayの型と、pの型をよく見比べてください。

あるいは
p[0][0]='S' ;
wday[0][0]='S' ;
の違いを考えてみましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!