我正在处理字符数组。我的函数应该返回一个数组。然后我希望将该数组分配给不同的char array
。
e.g。我有
char somechar[50];
在类声明中,它是私有的。
我将get方法定义为:
char getsomechar(){
return somechar;
}
在我的主要功能中,我试图: 访问它分配为:
char newchar[]=getsomechar();
我被赋予了返回类型和函数类型不匹配。所以我纠正了第二行:
char *getsomechar(){
return somechar;
}
但是我仍然遇到initialization with {...} expected for aggregate object
错误。我读了一些页面,发现你不能在C ++中按值传递数组。我无法使用数组库。如何使用指针/引用进行操作?
答案 0 :(得分:2)
你实际上是在你的函数中修复指向数组的指针:
return somechar; //this is the starting address of the array
所以,你应该声明一个char*
并将数组的起始地址分配给它,如下所示:
char* newchar=getsomechar();
现在您可以通过索引来访问此指针,如数组:
for(int i=0;i<ARRAY_SIZE;i++)
{
newchar[i] = value // whatever operation you want to do here
}