C语言 如何处理数据类型



我真的遇到了一个数据类型转换的问题。

我正在用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* '的转换无效
Codgui.cpp:37:错误:从' char '到' char* '的无效转换

谁有任何线索如何解决这个问题?

您的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);

相关内容

  • 没有找到相关文章