Hi, aus Gründen möchte ich mehrere Arrays oder wie im Beispiel zwei mit einem Array aus Pointern zusammenfassen. Allerdings gelingt mir die Umsetzung nicht. Hat jemand eine Idee wo der Fehler liegt? Ich möchte alle Arrays in einer Schleife abarbeiten und dabei möglichst auf if-Abfragen verzichten (also genau die Ausdrücke, dich bei der Zuweisung / Ausgabe verwendet habe). Ist es also generell möglich sowas zu machen oder bin ich auf dem Holzweg? Danke schonmal im Vorraus ;)
1 | #include <iostream> |
2 | |
3 | int main() { |
4 | |
5 | int s = 3; |
6 | int *a = new int[s]; |
7 | int *b = new int[s]; |
8 | int *c = new int[2*s]; |
9 | |
10 | // Arrays zuweisen |
11 | for(int i=0; i<2*s; i++) { |
12 | if(i<s) { |
13 | c[i] = a[i]; |
14 | } else { |
15 | c[i] = b[i-s]; |
16 | } |
17 | } |
18 | |
19 | // Ausgangsarrays mit werten füllen |
20 | for (int i=0; i<s; i++) { |
21 | a[i] = i; |
22 | b[i] = i+s; |
23 | } |
24 | |
25 | // Ausgabe |
26 | std::cout << "i\tist\tsoll" << std::endl; |
27 | for(int i=0; i<2*s; i++) { |
28 | std::cout << i << ":\t" << c[i] << '\t'; |
29 | |
30 | if(i<s) { |
31 | std::cout << a[i]; |
32 | } else { |
33 | std::cout << b[i-s]; |
34 | } |
35 | |
36 | std::cout << std::endl; |
37 | } |
38 | |
39 | return 0; |
40 | } |
Bei der Zuweisung werden die Werte momentan direkt und nicht als Zeiger übergeben, dementsprechend sind alle Ausgaben 0. Ausgabe:
1 | i ist soll |
2 | 0: 0 0 |
3 | 1: 0 1 |
4 | 2: 0 2 |
5 | 3: 0 3 |
6 | 4: 0 4 |
7 | 5: 0 5 |