-1

私は本当にデータ型変換の問題に直面しています。

GTKでプログラムのGUI版を作っています。entry_text 文字列を取得するconst char*には、以下の関数でこのデータ型を使用することを義務付ける が必要です。

私はそれをに変換したいのですがstring(char[])、コンパイラは私に以下のエラーを与え続けます:

エラーが発生するソース コード:

    //....
    char ret (const char *bd){
    char c[100];
    strcpy(c,bd);
    return *c;
}

char encode(const char ebuf[],const char epass[]) {
char *buf=ret(ebuf);
char *pass=ret(epass);
//...

コードをコンパイルすると、次のエラーが表示されます (g++ を使用):

codgui.cpp: 関数 'char encode(const char*, const char*)':
codgui.cpp:36: エラー: 'char' から 'char*' への変換が無効です<br> codgui.cpp:37: エラー: 「char」から「char*」への無効な変換</p>

誰でもこれを修正する方法の手がかりを持っていますか?

4

1 に答える 1

1

あなたのret関数は、ローカル変数の最初の文字のみを返していますc。を返したいのですchar*が、ローカル変数のアドレスを返すべきではないため、ヒープ上に作成する必要があります。

char* ret (const char *bd){
char *c = new char[100];
strcpy(c,bd);
return c;
}

char encode(const char ebuf[],const char epass[]) {
char *buf=ret(ebuf);
char *pass=ret(epass);
于 2013-05-20T17:47:38.987 に答える