无法为数组指定显式初始值设定项[SystemC]

时间:2017-02-25 09:04:32

标签: c++ arrays visual-studio-2013 systemc

我使用VS2013和Allegro的SystemC库。我试图按如下方式初始化两个数组:

int pathObs1[19] = {10,9,8,7,6,5,4,3,2,1,2,3,4,5,6,7,8,9,10};
int Map[10][4] = {
    { 0, 3, 1, 4 }, //Grid 1
    { 1, 3, 2, 4 }, //Grid 2
    { 2, 3, 3, 4 }, //Grid 3
    { 3, 3, 4, 4 }, //Grid 4
    { 4, 3, 5, 4 }, //Grid 5
    { 5, 3, 6, 4 }, //Grid 6
    { 6, 3, 7, 4 }, //Grid 7
    { 6, 2, 7, 3 }, //Grid 8
    { 6, 1, 7, 2 }, //Grid 9
    { 6, 0, 7, 1 }  //Grid 10
    };

但是我收到了上述错误的错误。我在SO上看到了一些有同样问题的问题,但我不认为他们正在处理SystemC。因为我试图在我的SC_MODULE头/构造函数中初始化,所以在SystemC中有任何简单的解决方法吗?

编辑:我的数组初始化中有一个拼写错误。仍然会得到同样的错误。

2 个答案:

答案 0 :(得分:0)

2dArray [m] [n]表示m行n列,因此您可以在每行中保留n个值,但在您的代码中,您定义了具有3列但仍分配4个值的矩阵。

答案 1 :(得分:0)

您可以使用循环填充数组:

#include <iostream>
#include <stdlib>

int main()
{
srand(time(null));
int map[10][4];
for (int i = 0; i < 10; i++)
{
  for (int j = 0; j < 4; j++)
  {
     map[i][j] = rand(); // you can write smth like rand() % 5 to make a limit of the values
  }
}
return 0;
}