我需要一个返回枚举数组的方法,我尝试过:
note_name *AppSettings::getNoteMap(){
note_name notes[] = {..}
}
我在某处读到,我应该返回数组第一个元素的地址,所以这就是为什么有一个指针。但这给了我一个警告:与返回的局部变量注释关联的堆栈内存的地址
如何消除警告并正确返回数组?
最佳答案
您不能从函数返回数组,句点。您可以返回指向动态分配的内存块的指针(我不会走这条路),或者将指针(连同大小)作为输出参数,或者返回指向静态数组的指针,或者返回 vector<T>
或其他一些集合。
我会使用 std::vector
或 std::array
。
std::vector<note_name> foo() {
std::vector<note_name> ret;
// populate 'ret'
return ret;
}
关于c++ - 返回枚举数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124695/