簡體   English   中英

用數據填充未指定大小的數組

[英]Fill Array of unspecified Size with data

所以我現在正在學習 C++,我現在很困。 一段時間以來,我一直在 Internet 表單中進行研究,但找不到解決我的問題的方法。 也許是因為我不知道要照顧什么..

並為可能具有誤導性的標題感到抱歉,但問題是:

假設我有一個名為 Data 的結構,其中包含一個 int Array 和其他一些成員

struct Data{
...
uint8_t values [];
}

現在我有一個方法測試

void test (uint8_t *buffer, size_t buffer_size)
{
...

}

在該方法中,我創建了一個 Data 實例,我想將存儲在緩沖區中的值分配給 Data 實例的該數組,但我不知道如何做到這一點。 不確定,但也許我需要一個指針指針?

提前致謝! 干杯

在 C++ 中,您可以使用 STL std::vector<>。 您可以在:

struct Data{
...
std::vector<uint8_t> values;
}

然后在方法測試中:

void test (uint8_t *buffer, size_t buffer_size)
{
...
    struct Data istanceData;
    for (int i=0 ; i < buffer_size; ++i){
        istanceData.values.push_back(buffer[i]);
    }
}

如果您想在“測試”函數之外使用它,請記住動態分配結構數據(並返回它的指針)。 您還可以將額外的參數傳遞給“test”函數,並以這種方式傳遞引用的結構化數據:

void test (uint8_t *buffer, size_t buffer_size, struct Data &instanceData)
{
...
    for (int i=0 ; i < buffer_size; ++i){
        istanceData.values.push_back(buffer[i]);
    }
}

暫無
暫無

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

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