好的,所以我试图修复我的C++赋值,但是当我使用strcpy_s时,它仅适用于我的数组,而不适用于我的* pointer ..这是我正在使用的东西:
HotelRoom::HotelRoom(char Num[], int cap, double daily, char* name, int Stat)
{
strcpy_s(room_Num, Num); //copy first argument into room_Num[]
guest = new char[strlen(name) +1]; //create space for the name
strcpy_s(guest, name); //copy second argument into new space
capacity = cap;
dailyRate = daily;
occupancyStat = Stat;
}
这是我以这种方式使用它时遇到的错误strcpy_s(guest,name); :
“没有重载函数“strcpy_s”的实例与参数列表匹配,参数类型为:(char *,char *)”。
最佳答案
与strcpy_s
相比,非标准std::strcpy
需要一个额外的参数,即您要复制的最大大小。
errno_t strcpy_s(char *s1, size_t s1max, const char *s2);
您需要的是标准C函数
std::strcpy
。char *strcpy(char *s1, const char *s2);