c++ - C++ 中的数组和函数

标签 c++ arrays return-value

我正在处理字符数组。我的函数应该返回一个数组。然后我希望将该数组分配给不同的 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/

相关文章:

javascript - 我如何理解返回函数的函数?

c - 程序结束后返回值 3221225477

c++ - iPhone - OpenGL 使用 C++ 教程/片段

c++ - 动态分配模板类时出现编译器错误,其中类型是模板类型的另一个对象

c++ - 用于初始化 2D std::array 成员的初始化列表

java - 如何将 return 与数组一起使用?

java - 如何使用oracle数据库中的值验证我的密码以及java中return 0和return 1之间的区别

c++ - Msgpack 中是否有版本控制功能

c++ - C++ 整数除法如何用于限制和负值?

python - 如何编写接受 float 、列表或 numpy.array 的函数?