【发布时间】:2017-08-20 14:03:24
【问题描述】:
我正在尝试创建一个队列(大小为 3)的动态数组(5 个元素)的数组(10 个元素)。 我在做-
typedef int q[$:2];
typedef q dyn_arr;
dyn_arr arr_dyn_arr[][5]= new[10];
我不确定这是否正确。
【问题讨论】:
-
[$:2]表示队列的最大大小是三个元素 - 它不创建元素。如果你有一个 5X3 的二维数组,那么数字 10 是从哪里来的? -
我需要 10 个元素作为数组。不是语句 dyn_arr arr_dyn_arr[][5]= new[10];创建 10x5 ?
-
您的
typedef q dyn_arr除了将 q 重命名为 dyn_array 之外什么都不做。您声明的变量是一个 3 维数组,就好像您声明了int arr_dyn_arr [][5][$:2];所以您的new[10]创建了一个 10x5 的空队列数组。 -
@dave_59,现在知道了。感谢您的解释。将删除多余的语句。
标签: arrays system-verilog