来自const的转换无效,但未声明为const

时间:2012-12-04 20:20:56

标签: c const

我声明了以下char*并尝试将其传递给需要char *作为第三个参数的函数:

char *echo;
prompt = ssh_userauth_kbdint_getprompt(primarySession, 0, echo);

然而,我收到错误:

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

我还尝试声明为char echo;,传递的参数为&echo。但我真的不需要echo中此函数更改的值。所以我想传递NULL,但我想我希望它是const。我也试过this trick

char echo;
prompt = ssh_userauth_kbdint_getprompt(primarySession, 0, (char *)(&echo));

仍然没有成功。建议?

3 个答案:

答案 0 :(得分:3)

查看该函数的声明:

const char *
ssh_userauth_kbdint_getprompt (ssh_session session, unsigned int i, char *echo)

因此,prompt需要const char *而不是char *

答案 1 :(得分:1)

问题在于该函数的返回值,而不是其任何参数。

答案 2 :(得分:0)

可能错误不在您想到的地方,而是在返回类型中。我猜你的prompt变量是char*,其中函数返回char const*