[英]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.