Hey,
nächstes "Problem". Einfaches Beispiel zuerst:
Ich speichere A in B mittels Pointer und Adressen:
Das klappt soweit auch. Nun eine Nummer höher: Arrays. (Ist das hier überhaupt korrekt?)
Dies liefert dann B=[0,0], also klappt das nicht. Das muss an der speziellen Struktur von B liegen. Hat jemand einen Tip, wie ich das korrekt umsetze?
Danke
Edit: Ein Problem ist mir bereits aufgefallen: Ich fordere val *B und übergebe &B, eine Adresse, also ein Int/String (wie auch immer..) das kann nicht funktionieren.
Dafür kann ich doch aber ein int *b fordern, dem ich die Adresse von B gebe. Dann speichere ich A in *b...ich teste mal
Kleine Anpassung. Nun klappt's.
Neues Problem
Angenommen, ich habe nun einen sehr langen Array nach obigen Vorbild. Ich würde dann ja gerne mittels
diesen Speichervorgang durchführen. Mein letzter Versuch endete hier aber in einer Endlosschleife. Anregungen?
Wie sieht ein array "int A[3]" aus? Ist hier mit A=[1,2,3]
0 -> 1; 1 -> 2; 2 -> 3; 3 -> "/0"
wie bei char?
nächstes "Problem". Einfaches Beispiel zuerst:
Ich speichere A in B mittels Pointer und Adressen:
Code:
void save(int A, int *B)
{
*B=A;
}
void main()
{
int A,B;
A=4; B=;
trade(A,&B);
}
Code:
typedef int val[2];
void save(val A, val *B)
{
*B[0] = A[0];
*B[1] = A[1];
}
void main()
{
val A = {1,2};
val B;
trade(A,&B);
}
Dies liefert dann B=[0,0], also klappt das nicht. Das muss an der speziellen Struktur von B liegen. Hat jemand einen Tip, wie ich das korrekt umsetze?
Danke
Edit: Ein Problem ist mir bereits aufgefallen: Ich fordere val *B und übergebe &B, eine Adresse, also ein Int/String (wie auch immer..) das kann nicht funktionieren.
Dafür kann ich doch aber ein int *b fordern, dem ich die Adresse von B gebe. Dann speichere ich A in *b...ich teste mal
Kleine Anpassung. Nun klappt's.
Code:
typedef int val[2];
void save(val A, int *b)
{
*(b+0) = A[0];
*(b+1) = A[1];
}
void main()
{
val A = {1,2};
val B;
trade(A,&B[0]);
}
Neues Problem
Angenommen, ich habe nun einen sehr langen Array nach obigen Vorbild. Ich würde dann ja gerne mittels
Code:
int k=0;
while(A[k])
*(b+k) = A[k++];
Wie sieht ein array "int A[3]" aus? Ist hier mit A=[1,2,3]
0 -> 1; 1 -> 2; 2 -> 3; 3 -> "/0"
wie bei char?
Zuletzt bearbeitet: