我使用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中有任何简单的解决方法吗?
编辑:我的数组初始化中有一个拼写错误。仍然会得到同样的错误。
答案 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;
}