Forum: Compiler & IDEs Array in Variable


von Andreas W. (Gast)


Lesenswert?

Ich habe ein Array mit Werten gefüllt, der inhaltdes arrays möchte ich 
in eine Variable kopieren.

 char test[2];
 test[0]=88;
 test[1]=55;
 test[2]=100;


char varible1= test[0];
char varible2= test[1];
char varible3= test[2];
wie kann ich meine variblen mit dem inhalt vom array befüllen
villeicht kann mir wer weiterhelfen
mfg

von Jim M. (turboj)


Lesenswert?

Besorge Dir ein C Grundlagenbuch und lies es.

Das sollte Dir nicht nur Deine Frage beantworten,
sondern auch solche Dinge beibringen wie Arraygrenzen:
1
  char test[2];
2
  test[2] = 0x0 ;// Buffer Overflow!

Denn ein array[x] enthält x Elemente, beginnend ab "0" - damit ist "x-1" 
der höchste erlaubte Index.

von Andreas W. (Gast)


Lesenswert?

Ich meinte das anders ,ich möchte den inhalt vom Array  in eine variable 
kopieren
Da steh ich grad ein bischen auf dem schlauch.

von Klaus W. (mfgkw)


Lesenswert?

Andreas W. schrieb:
> Ich meinte das anders ,ich möchte den inhalt vom Array  in eine variable
> kopieren

Steht doch schon fast da (außer daß das Feld zu klein war):
1
 char test[3];
2
 char varible1;
3
 char varible2;
4
 char varible3;
5
6
 test[0]=88;
7
 test[1]=55;
8
 test[2]=100;
9
10
11
 varible1= test[0];
12
 varible2= test[1];
13
 varible3= test[2];

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Andreas W. schrieb:
> Ich meinte das anders ,ich möchte den inhalt vom Array  in eine variable
> kopieren

In eine wird es nicht reinpassen.

von Klaus W. (mfgkw)


Lesenswert?

na, jetzt sei doch nicht katholischer als der Papst!
Er hatte doch schon varible1 bis varible3 erwähnt :-)

Abgesehen davon: nacheinander passt es auch in eine.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Klaus Wachtler schrieb:
> Abgesehen davon: nacheinander passt es auch in eine.

In eine 32-bit-Variable passt es auch gleichzeitig. ;-)

von Klaus W. (mfgkw)


Lesenswert?

... falls ein char nur 8 Bit hat.
Bei einem char mit 16 oder 32 Bit natürlich nicht mehr.

(Hoffentlich verschrecken wir ihn jetzt nicht)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Klaus Wachtler schrieb:
> ... falls ein char nur 8 Bit hat.

Ich gehe mal nicht davon aus, dass jemand mit derart rudimentären
C-Kenntnissen gleich mit einem TMS320 oder sowas anfängt. ;-)

von dennis (Gast)


Lesenswert?

hab auch noch eine frage dazu, Da ich noch beim C lernen bin
Ich möchte gerne die beiden array inhalte  tst0 und test1 in eine 
variable legen das nacher
der Wert 85 drin steht.

Vielleicht kann mir einer von euch weiterhelfen.
Mfg

char varible1;
test[0]=8;
test[1]=5;
Währe das denn so richtig

varible1= test[0]&test[1];

von J.-u. G. (juwe)


Lesenswert?

dennis schrieb:
> Währe das denn so richtig

Nein.

Schreibe einfach:

variable1 = test[0]*10 + test[1];

von PittyJ (Gast)


Lesenswert?

Früher hat man sich hingesetzt, diese einfachen Probleme mal mit dem 
Compiler übersetzt, und geguckt, was da rauskommt.
printf hat die Werte angezeigt, vor und nach der Berechnung.
Dann hat man noch mal nachgelesen, warum das anders ist, als das was man 
erwartete.

Heute wird nicht einmal der Compiler benutzt, sondern jeder Pups gleich 
im Forum nachgefragt. Warum sind die Leute schon zu faul, 2 printf's 
einzubauen und make einzutippen? Ein Nachfrage im Forum ist doch 
wesentlich mehr Schreibaufwand!

von spontan (Gast)


Lesenswert?

Sihet schwer nach persönlicher Unsicherheit aus und nach Unwissen, wie 
Probleme gelöst werden.

Schon mal von digitaler Demenz gehört?

von Bronco (Gast)


Lesenswert?

Ich wüßte ja zu gerne, was der OT ursprünglich vorhatte...

von Uwe (Gast)


Lesenswert?

>> variable1 = test[0]*10 + test[1];
oder
variable1 = test[0]*16 + test[1];
oder
union zahl
 {
   char  c[2]; //2 Byte
   short s; //1 Byte + 1 Byte
 }z;

Kommt aber immer was anderes bei raus !
Was willst du denn nun wirklich machen ?
Überlege mal was der unterschied zwischen den drei Varianten ist.

von dennis (Gast)


Lesenswert?

Es können auch zahlen zwischen 0-9 in test0 und test1 vorkommen
Ich möchte das die beiden array-inhalte in eine varible schreiben

Zb.
test[0]=1
test[1]=9

Es muss dann nachher 19 in der varible drinstehen
test[0] sind die zehner
test[1] sind die einer

Kommt denn hier nicht
variable1 = test[0]*10 + test[1];
109 raus

von Sepp (Gast)


Lesenswert?

>Kommt denn hier nicht
>variable1 = test[0]*10 + test[1];
>109 raus

Nein!
Dein Beispiel:
test[0]=1
test[1]=9

--> 1*10+9= 10+9 = 19!

Oder willst du 0x19 drinstehen habenn??

von Sepp (Gast)


Lesenswert?

Sorry, hab'


>Es muss dann nachher 19 in der varible drinstehen
>test[0] sind die zehner
>test[1] sind die einer

überlesen!

Dann vergiss das mit hex!

von Karl H. (kbuchegg)


Lesenswert?

dennis schrieb:

> test[0]=1
> test[1]=9
>
> Kommt denn hier nicht
> variable1 = test[0]*10 + test[1];
> 109 raus


Ähm Kopfrechnen?

1 mal 10 sind 10. Plus 9 sind 19.

Das ist ganz normale Rechnerei! Da wird nichts aneinandergehängt oder 
so! Warum soll da auch was anderes passieren als das was dortsteht.

Hast du doch schon tausende male selbst gemacht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.