C ++中的数组和函数

时间:2014-03-16 11:10:57

标签: c++ arrays return-value

我正在处理字符数组。我的函数应该返回一个数组。然后我希望将该数组分配给不同的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 ++中按值传递数组。我无法使用数组库。如何使用指针/引用进行操作?

1 个答案:

答案 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
}