如何将字符数组传递给函数。
声明
char fromName[64];
char fromStreet[64];
char fromSuburb[64];
char fromCountry[64];函数调用
Trans[i]->putAddress(fromName, fromStreet, fromSuburb, fromCountry);原型
void putAddress(char,char,char,char);
function
void putAddress(char fName,char fStreet,char fSuburb,char fCountry){
return;
}和错误"main.cpp",第86行:错误:在对Mail::putAddress( char,char)的调用中,类型为char的形参1正在传递char*。
发布于 2012-04-30 20:22:56
你的函数应该是:
void putAddress(char *,char *,char *,char *);发布于 2012-04-30 20:23:21
您需要将指针传递给char
void putAddress(char* fName,char* fStreet,char* fSuburb,char* fCountry);然后你需要小心知道每个数组的大小,这样你就不会在末尾建立索引,在你的例子中所有的数组都是64。
发布于 2012-04-30 20:25:38
您可以通过两种方式传递数组:
(1)传统的C风格:
在这里,您使用指针传递地址和接收
void putAddress(char *,char *,char *,char *);(2) C++引用传递:
通过引用指定大小来传递数组:
void putAddress(char (&a1)[64], char (&a2)[64],char (&a3)[64], char (&a4)[64]);这有助于您立即获得正确的数组大小(不允许使用指针)。也可以使用template使其更加复杂。
您还可以迭代使用std::string,这将创建整个数组的副本,并将其作为自动变量进行管理。
https://stackoverflow.com/questions/10383615
复制相似问题