簡體   English   中英

靜態分配的指向靜態分配結構的指針數組

[英]Statically allocated array of pointers to statically allocated structures

在這個程序中,有 100 次不同的運行。 對於每次運行,都需要創建一個指針數組。 每個數組中的指針數量由一個名為 NUM_POINTERS 的已定義常量決定。 這個程序的奇怪之處在於必須靜態分配數組,以及指針指向的數據。

這是我的代碼:

for (int j = 0; j < 100; j++){
    SomeType *arr[NUM_POINTERS];

    for (int k = 0; k < NUM_POINTERS; k++){
      SomeType blah;
      blah.data = NULL;
      arr[k] = &blah;
    }

}

現在這段代碼根本不起作用。 它不會為每次運行創建一個新數組,如果 arr[1] 更改,那么每個其他數組元素也會更改。

我知道解決此問題的簡單方法是使用 malloc,但是這將被視為動態分配,而不是靜態分配。 有沒有辦法讓它工作,同時仍然靜態分配所有東西?

聲明一個指針數組和一個結構數組。 然后從結構數組元素的地址分配指針。

Sometype *arr[NUM_POINTERS];
Sometype arr2[NUM_POINTERS];

for (int i = 0; i < NUM_POINTERS; i++) {
    arr[i] = &arr2[i];
}

暫無
暫無

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

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