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