首页 > 解决方案 > 没有匹配的函数来调用“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);
}

标签: c++

解决方案


getItemName不返回任何东西(void作为返回类型意味着函数什么也不返回)。它修改了它的论点。所以你需要将buffer参数传递给strlen.

list[i].getItemName(buffer);
int length = strlen(buffer);

推荐阅读