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

标签 c constants

我声明了以下 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));

还是没有成功。有什么建议吗?

最佳答案

查看该函数的声明:

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

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

关于c - 来自 const 的无效转换,但未声明为 const,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13711199/

相关文章:

c - 在用 C 编写一个简单的程序时遇到问题,有什么建议吗?

c++ - 在 Ncurses 中跟踪 KEY_ENTER

c# - 在 C# 中派生静态类

c++ - 在 C++ 中声明一个局部变量 const 的好处,如果它的值在编译时是未知的

const int 到 int 无法正常工作

c - XMMS2:设置标题更改通知

CMake:如何对多个文件运行自定义命令以生成源文件?

c - 在不更改 API 且未收到警告的情况下将 const char* 转换为 char* 的正确方法是什么

java - android文档中的 "Inherited constants"和 "Inherited fields"有什么区别?

c - 语句的输出怎么是 'E'