でのPascalコンパイラを構築するとき、私は、次のポインタ問題C
char *words[29]={
"program",
"label",
"integer",
"word",
"char",
"byte",
"shortint",
"logint",
"real",
"single",
"double",
"string",
"boolean",
"var",
"procedure",
"function",
"begin",
"end",
"if",
"then",
"else",
"or",
"and",
"div",
"not",
"do",
"while",
"mod"
};
char message[30];
を宣言していたし、私は機能でそれを使用しようとした私のコンパイラ の字句解析上のいくつかの問題に直面しています
for(handle=0;(&words[handle] != NULL);handle++)
{
message = &words[handle];
if(!strcmp(token,message))
message='words';
}
しかし、実行しようとしたときに、私は次のエラーを受信しています:
について(ラインメッセージ= &単語[ハンドル];):警告C4047: '=' 'チャー[30]' に対する 'チャー**'
から 間接のレベルが異なる(ラインメッセージ= &単語[ハンドル];);定数
にあまりにも多くの文字: エラーC2015エラーC2106: '=')は 左のオペランドが(ラインメッセージ= '単語' に関するL値なければなりません
に関して(行メッセージ= '言葉';): エラーC2106:「=」:左オペランドは
が、私はそのようにポインタを操作することはできません左辺値でなければなりませんか? ご意見はありますか?
多くのお役に立てました! –