Ich versuche ein Array mit 8 anderen Arrays zu erstellen. Ich habe eine Funktion, die diese Arrays in ein größeres Array bringt. Ich habe Probleme Referenzierung meine Daten in dem Sub-Arrays:Referenzieren von Werten eines Arrays von Zeigern auf Arrays
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;
}
Ich teste diese in Haupt-, und ich kann nicht einen Weg für den Zugriff auf alles anderes als den ersten Wert in jedem Feld finden. Ich bin nicht sicher, was die erste Spalte zeigt, die zweite Spalte ist der erste Eintrag in jedem von vec10-vec1000000, und die dritte ist einfach Iteration +1 auf den ersten Eintrag. Wie formatiere ich das, damit ich auf meine Sub-Arrays zugreifen kann? Ist meine Funktion zum Scheitern verurteilt?
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 ** und ** down ** sind int-Arrays richtig? Woher kommen sie? Wenn das der Fall ist, sollte Ihr ** arr ** Parameter ein 2d Array in Ihrer Funktionssignatur sein: 'void randomGen (int ** arr)' und dann können Sie auf seine Werte mit arr [i] [j] zugreifen, wobei ** i ** und ** j ** stehen für Ihre Zeile und Ihre Spalte, auf die zugegriffen wird. – 0xDEFACED
Ja, diese Vektoren sind int-Arrays. Ich habe Ihren Vorschlag @ Santiago-Varela versucht, ich bekomme einen exc schlechten Zugriffsfehler. Ich habe folgende Anpassungen vorgenommen: 'int ** a; ' deklariert in main, 'void randomGen (int ** arr) {', und 'arr [0] = vec10;' in der Funktion randomGen und 'für (int i = 0; i <10; i ++) { cout <