簡體   English   中英

C初始化指向數組Initializator中數組的指針

[英]C initialize pointer to array in array initializator

我需要初始化此結構的數組:

struct a {

   int *a;
   int *b;
   int count;
};

我的代碼看起來像這樣;

struct a[] = 
{
  {{1,2},{3,4}, 2},
  {{1},{3}, 1}
};

當程序嘗試訪問字段的第一個元素時,這將編譯但出現段錯誤。

struct a a[] = 
{
  {(int[]){1,2},(int[]){3,4}, 2},
  {(int[]){1},(int[]){3}, 1}
};

您應該使用類似(添加到BLUEPIXY的答案)之類的方法

static int arr1[] = {1, 2};
static int arr2[] = {3, 4};
static int arr3[] = {1};
static int arr4[] = {3};

struct a a[] = 
{
  {arr1, arr2, 2},
  {arr3, arr4, 1}
};

現場代碼在這里

進一步閱讀: C中的指針和數組的等效

暫無
暫無

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

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