簡體   English   中英

從函數 C++ 返回結構數組

[英]Return struct array from function c++

我正在嘗試從函數傳遞一個結構數組。 我搜索了很多,但無法找到解決此問題的方法。 下面是我正在嘗試的代碼。

struct menuItemType
{
    int itemNo;
    string menuItem;
    double price;
};

void getData(menuItemType *menuList[10])
{
    menuList[0]->itemNo = 111;  
    menuList[0]->menuItem = "Apple";    
    menuList[0]->price = 2.00;

    ....
    menuList[0]->itemNo = 120;  
    menuList[0]->menuItem = "Chocolate";    
    menuList[0]->price = 5.00;
}

int main()
{
    /* i know that i can't return a array. but i want to get the menuList[10] values here. 
    not sure which code i have to use..*/
}

您的void getData(menuItemType *menuList[10])不返回任何內容。 相反,它填充輸入參數指向的內存中的數據。

int main()
{
    menuItemType data[10];
    getData(&data);
    std::cout << data[9].menuItem << std::endl; // Chocolate
}

但是,您為什么堅持使用低級數組? 改用std::vector

std::vector<menuItemType> getData()
{
    std::vector<menuItemType> data;
    data.push_back({111, "Apple", 2.00});
    ...
    data.push_back({120, "Chocolate", 5.00});
    return std::move(data);
}

int main()
{
    std::vector<menuItemType> data = getData();
    std::cout << data[9].menuItem << std::endl; // Chocolate
}

它將打印Chocolate ,因為我認為您的代碼中有錯字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM