-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。您想返回 a 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 回答