0

我有以下结构:

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. 那么问题来了,问题出在哪里?

4

1 回答 1

1

如 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};

这意味着您需要使用其大小(而不是更小)来初始化数组。

于 2019-07-03T22:00:43.760 回答