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
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.
Ich meinte das anders ,ich möchte den inhalt vom Array in eine variable kopieren Da steh ich grad ein bischen auf dem schlauch.
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]; |
Andreas W. schrieb: > Ich meinte das anders ,ich möchte den inhalt vom Array in eine variable > kopieren In eine wird es nicht reinpassen.
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.
Klaus Wachtler schrieb: > Abgesehen davon: nacheinander passt es auch in eine. In eine 32-bit-Variable passt es auch gleichzeitig. ;-)
... 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)
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. ;-)
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];
dennis schrieb: > Währe das denn so richtig Nein. Schreibe einfach: variable1 = test[0]*10 + test[1];
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!
Sihet schwer nach persönlicher Unsicherheit aus und nach Unwissen, wie Probleme gelöst werden. Schon mal von digitaler Demenz gehört?
>> 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.
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
>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??
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.