【问题标题】:Can't pass a string literal to my function [duplicate]无法将字符串文字传递给我的函数[重复]
【发布时间】:2018-10-29 04:50:34
【问题描述】:

我的函数头是

int display_caption( char* caption ); 

if( display_caption( "hybrid thresholded Image" ) != 0 ) 
{ 
    return 0; 
}

返回错误

“const char*”类型的参数与“char*”类型的参数不兼容

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您不能将指针从const T* 转换为T*display_caption 可能意味着有一个const char* 参数而不是char*
  • 试试int display_caption(const char* caption)
  • 或者更好,考虑到你是如何使用它的:bool display_caption(const char* caption);
  • 你对你的错误有什么理解?你确定你的论点了吗?你确定你的参数了吗?你看到它们是如何不兼容的吗?就目前而言,这个问题要求我们猜测您对该消息的不理解之处。

标签: c++


【解决方案1】:

如果display_caption不需要修改caption参数,可以将其类型改为const char*

int display_caption( const char* caption );

如果确实需要修改它,您需要先复制该字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2014-09-06
    • 2021-02-24
    相关资源
    最近更新 更多