Инициализация массива в Уппале - PullRequest
0 голосов
/ 30 июня 2019

У меня есть следующая структура:

const int MAX = 6;
typedef struct {
    int num1;
    int arr1[MAX]; 
    int arr2[MAX];
    int num2;
} MyStruct;

И я инициализирую этот массив следующим образом:

MyStruct myStruct = {1, {-1}, {2,-1}, 1};

Но получите следующие ошибки для первого элемента:

Неверный инициализатор

А для второго элемента:

слишком много элементов в инициализаторе

Я должен был упомянуть, что я использую версию Uppaal 4.1.19. Итак, вопрос в том, где проблема?

1 Ответ

0 голосов
/ 04 июля 2019

Как упомянуто в документации Uppaal, некоторые базовые синтаксисы унаследованы от C ++, включая инициализацию массива.Однако есть разница, которая нигде не выделяется.Предположим, у нас есть следующая инициализация массива в C ++:

int arr[5] = {1,2,3}; // arr has type int[5] and holds 1,2,3,0,0

С другой стороны, если мы напишем то же утверждение в Uppaal, мы получим ошибку wrong number of elements in array initialiser, и нам нужно полностью инициализировать массивнравится следующее:

int arr[5] = {1,2,3,0,0};

Это означает, что вам нужно инициализировать массив с его размером (не меньшим).

...