-2

私は(c ++の)大きなコードに以下の関数を持っています:

void startup(const char *&      start,
    const char *&   stop);

この関数が呼び出された後、文字値、つまり「start」と「stop」の間に格納されている文字列にアクセスしたいと思います。

私が同じものにアクセスしようとしている方法は次のとおりです。

 char *var=(c.start);
  cout<<"\n Iterating over char pointer \n";
  while(var<=(c.stop))
  {
      cout<<*var;
      var++;
  }
  cout<<"\n";

ただし、この方法でアクセスしようとすると、以下のエラーが発生します。

  error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]

誰かがエラーを修正するのに十分親切にできますか...そして私が文字値にアクセスするのを手伝ってください

4

2 に答える 2

2

あなたがする必要があるのは、行を置き換えることです:

char *var=(c.start);

と:

const char *var=(c.start);

constこれは、ポインタ自体ではなく、ポインタが指す文字を指していることに注意してください。したがって、var++ポインタがconstではないため、のような式は完全に問題ありません。

于 2012-06-06T03:23:00.263 に答える
0

割り当てステートメントでこの変換を試すことができます。

char *pc = (char *)(c.start);
于 2012-06-06T03:23:52.433 に答える