Function.h
void copyArray(char, char);
主.cpp
void copyArray(char word[], char temp[]) {
for (int i = 0; i < 50; i++) temp[i] = word[i];
}
奥瑟.cpp
copyArray("CHAMPAGNE", char myArray[50]);
输出
C2664 'void copyArray(char,char)': cannot convert argument 1 from 'const char [10]' to 'char'
已经在谷歌上搜索了错误,查找预编码的函数,什么也没找到 我不能使用字符串
首先:声明和定义不匹配,因为声明指定函数需要两个char
,而定义指定函数需要两个char*
:
void copyArray(char, char); // declaration
void copyArray(char word[], char temp[]) { // definition
for (int i = 0; i < 50; i++) temp[i] = word[i];
}
您需要使声明与定义相同:
void copyArray(char[], char[]); // or void copyArray(char*, char*);
。但是,为了从字符串文本复制,您需要使第一个参数采用const char*
,因为字符串文本由const char
s组成。
void copyArray(const char word[], char temp[]);
但是,"CHAMPAGNE"
中没有50
char
,因此尝试复制许多会使您的函数访问超出界限"CHAMPAGNE"
(结果具有未定义的行为)。不应复制到