我正在处理字符数组。我的函数应该返回一个数组。然后我希望将该数组分配给不同的 char array
。
例如我有
char somechar[50];
在类声明中,它是私有(private)的。
我定义了一个 get 方法:
char getsomechar(){
return somechar;
}
在我的主要功能中,我试图: 访问它指定为:
char newchar[]=getsomechar();
我得到的返回类型和函数类型不匹配。所以我将第二行更正为:
char *getsomechar(){
return somechar;
}
但是我仍然遇到 initialization with {...} expected for aggregate object
错误。我阅读了一些页面,发现您不能在 C++ 中按值传递数组。我不能使用数组库。我如何使用指针/引用来做到这一点?
最佳答案
您实际上是在函数中返回指向数组的指针:
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
}
关于c++ - C++ 中的数组和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22436067/