在C中创建列表的整数列表

时间:2016-10-26 15:09:17

标签: c list integer

我想在C中创建一个包含可变大小的整数数组的整数列表。主列表的长度不需要改变。

我将如何声明它 - 我的实施 - 特别是我的访问无效:

int dataArray[length];
int dataArray[0] = [1,2,3];
int dataArray[1] = [5,6];
.
.
.
populate

for(int a = 0; a<sizeof(dataArray); a++) {
   tempArr = dataArray[a];
   for(into = 0; b>sizeof(tempArr); b++) {
      print(dataArray[a][b])
   }
} 

2 个答案:

答案 0 :(得分:1)

您的主数组需要保存指向其他数组的指针。因此它不应该是int dataArray[length]而是int* dataArray[length]这意味着它将对整数数组保持length个引用量。

int* array[length];

int randomSizeArray[x];
randomSizeArray[0] = 1;
.
.
.
randomSizeArray[x] = 5;
int* array[0] = randomSizeArray;

同样sizeof()将无法按预期的方式工作 - 在C中,您需要单独存储数组中的元素数量。我建议您从头开始阅读C教程,因为您似乎对基础知识有不稳定的了解。

答案 1 :(得分:1)

sizeof导致字节数不是元素数。

将数组大小除以元素大小以查找元素数。

int dataArray[length];
int dataArray[0] = [1,2,3];
int dataArray[1] = [5,6];
...

// for(int a = 0; a<sizeof(dataArray); a++) {
for(size_t a = 0; a<sizeof(dataArray)/sizeof(dataArray[0]); a++) {
   tempArr = dataArray[a];
   // for(into = 0; b>sizeof(tempArr); b++) {
   for(into = 0; b>sizeof(tempArr)/sizeof(tempArr[0]); b++) {

   // or do you really want
   // for(size_t = 0; b<sizeof(tempArr)/sizeof(tempArr[0]); b++) {

      print(dataArray[a][b])
   }
}