我想创建一个包含8个其他数组的数组。我有一个函数将这些数组放在一个更大的数组中。我无法引用在子阵我的数据:引用数组指针的值
void randomGen(int arr[]){
// fill vec10-vec1000000 with random values
arr[0] = *vec10;
arr[1] = *vec100;
arr[2] = *vec1000;
arr[3] = *vec10000;
arr[4] = *vec100000;
arr[5] = *vec100000;
arr[6] = *up;
arr[7] = *down;
}
我在主要测试这一点,我不能找到一种方法来访问任何东西,但每个阵列中的第一个值。我不确定第一列显示的是什么,第二列是每个vec10-vec1000000中的第一个条目,第三列仅仅是在第一个条目上迭代+1。我如何格式化,以便我可以访问我的子数组?我的功能注定了吗?
First 4 elements of vec10: 12 5 9 17
0: *(*(&a+i)): 12; *(a+i): 12; *(a)+i: 12
1: *(*(&a+i)): 0; *(a+i): 1144108930; *(a)+i: 13
2: *(*(&a+i)): 0; *(a+i): 984943658; *(a)+i: 14
3: *(*(&a+i)): 0; *(a+i): 1622650073; *(a)+i: 15
4: *(*(&a+i)): 0; *(a+i): 282475249; *(a)+i: 16
5: *(*(&a+i)): 0; *(a+i): 282475249; *(a)+i: 17
6: *(*(&a+i)): 0; *(a+i): 0; *(a)+i: 18
7: *(*(&a+i)): 0; *(a+i): 9999; *(a)+i: 19
8: *(*(&a+i)): 0; *(a+i): 0; *(a)+i: 20
9: *(*(&a+i)): 0; *(a+i): 0; *(a)+i: 21
** vec10-vec100000,up **和** down **是int数组吗?他们来自哪里?如果是这种情况,你的** arr **参数应该是函数签名中的一个二维数组:'void randomGen(int ** arr)',然后你可以使用arr [i] [j]来访问它的值,其中**我**和** j **代表您的行和正在访问的列。 – 0xDEFACED
是的,这些向量是int数组。我尝试了你的建议@圣地亚哥瓦雷拉,我得到一个不良访问错误。我做了以下调整:'int ** a;'在randomGen函数中声明为main,'void randomGen(int ** arr){'和'arr [0] = vec10;',并且for(int i = 0; i <10; i ++){cout <