c++ - 返回枚举数组的函数

标签 c++ arrays pointers return

我需要一个返回枚举数组的方法,我尝试过:

note_name *AppSettings::getNoteMap(){
    note_name notes[] = {..}
}

我在某处读到,我应该返回数组第一个元素的地址,所以这就是为什么有一个指针。但这给了我一个警告:与返回的局部变量注释关联的堆栈内存的地址

如何消除警告并正确返回数组?

最佳答案

您不能从函数返回数组,句点。您可以返回指向动态分配的内存块的指针(我不会走这条路),或者将指针(连同大小)作为输出参数,或者返回指向静态数组的指针,或者返回 vector<T>或其他一些集合。

我会使用 std::vectorstd::array

std::vector<note_name> foo() {
    std::vector<note_name> ret;
    // populate 'ret'
    return ret;
}

关于c++ - 返回枚举数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124695/

相关文章:

c++ - c++中线程库和mpi的区别

c++ - 使用命名空间重新定义错误

android - 使用 JNI 在 C++ 中访问二维数组字段

pointers - 我应该用指向结构的指针还是只在结构上定义我的函数?

c++ - 设置私有(private)数据成员

C++:另一个类中的类作为类型?

c++ - 与字符串文字不同,为什么具有单独字符的字符数组不以空终止符结尾?

c - C中的数组问题

c++ - 访问数组元素的不同方式

c++ - 为什么多行宏在每行末尾都有反斜杠?