c++ - 没有匹配的函数来调用“strlen”
问题描述
我正在尝试为指针 char 数组分配内存,但我一直没有匹配的函数来调用“strlen”
int ItemList::getItemNames(char ** & itemNames) const{
int counter = 0;
int MAX_NAME = 50;
char buffer[MAX_NAME];
for (int i = 0; i < size; i++){
int length = strlen(list[i].getItemName(buffer));//ERORR
itemNames[i] = new char[length + 1];
counter++;
}
return counter;
}
这是 getItemName()
void InventoryItem::getItemName(char returnName[]) const
{
strcpy(returnName, itemName);
}
解决方案
getItemName
不返回任何东西(void
作为返回类型意味着函数什么也不返回)。它修改了它的论点。所以你需要将buffer
参数传递给strlen
.
list[i].getItemName(buffer);
int length = strlen(buffer);
推荐阅读
- reactjs - 如何使用引导程序确定每行的卡片数量?
- spring - 包括弹簧核心,为什么我会收到“java.lang.ClassNotFoundException:org.springframework.core.ErrorCoded”错误?
- javascript - 如何在 JavaScript 中将 0.023 舍入到 0.03
- python - 如何使用 Python 将值直接插入 SQL 基表?
- javascript - 如何在 uk-modal 弹出窗口的右上角添加“x”关闭按钮?
- spring-boot - 在 spring-boot 应用程序中使用的自定义骆驼组件
- module - 如何在 Verilog 中定义参数模块?
- .net - Office 的 COM 共享插件(非 VSTO)可以向宿主应用程序添加自定义事件吗?
- reactjs - 如何创建登录配置
- swift - UIButton 单击以使用 Swift 交换两个标签文本?