Array wert zuweisen
-
Gibt es irgendeine Möglichkeit ohne groß eine schleife zu machen allen variablen einer arry einen wert zu geben ? normalerweise mache ich das ja so:
int Zahl = 1;aber:
int Zahl[9] = 1;geht scheinbar nicht...
muss ich mir dafür eine extra Funktion schreiben oder geht des irgendwie ähnlich ?
-
Entweder gleich mit Werten initialisieren ( int x[3] = {-1,20,13}; ) oder per memset nachträglich drüberbügeln.
-
was ist so schlim daran diese 3zeilen zu tipppen?
int array[9]; for( int i = 0; i < 9; ++i ) { array[i] = 1; }
-
wenn ich das so richtig verstehe mchst du mit {-1,20,13} die erste zu -1 die zweite zu 20 und die dritte zu 13 richtig ? ich will aber alle zu einem wert machen also 1. = 1 2. = 1 3. = 1
und was meinst du mit "memset" ?E @T0bi:
weil cih dann wieder eine var brauche und der mekert immer wenn ich meine var in der cse erschaffe.
-
Turmfalke schrieb:
und was meinst du mit "memset" ?
Die Funktion?
-
äm...stehe ich glaube ich stehe aufm schlau... habe immer noch keine ahnung was mit memset gemeint ist...
-
Turmfalke schrieb:
wenn ich das so richtig verstehe mchst du mit {-1,20,13} die erste zu -1 die zweite zu 20 und die dritte zu 13 richtig ? ich will aber alle zu einem wert machen also 1. = 1 2. = 1 3. = 1
ja, dann halt:
int x[3] = {1};Jetzt sind alle auf 1 gesetzt.
und was meinst du mit "memset" ?
-
hö? int i = 0 is doch intern net global das heisst nach ende der schleiffe is die auch wieder weg.... und wenn die das array[9] mit 1sen initialisieren willst dann schreib halt array[9] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }
versteh ich net wieso du des so kompliziert machst ^^
-
weil meine arry 173 als größe hat , da will nicht umbedingt 173 1en eintippen ... wie ist das jetzt mit nur eineer zahl in der Klammer ? wird dann nicht eigetlich nur die erste auf 1 gesetzt?
-
GPC schrieb:
oder per memset nachträglich drüberbügeln.
memset ist allerdings nur für char Arrays geeignet, sonst bringt die Funktion nichts.
GPC schrieb:
ja, dann halt:
int x[3] = {1};Jetzt sind alle auf 1 gesetzt.
Nein, das funktioniert nicht. Hier wird nur das erste Element auf 1 gesetzt, der Rest wird value-initialized, was im Endeffekt Nullinitialisierung bedeutet.
-
memset() für int's halte ich für etwas zweifelhaft (das arbeitet auf byte-Ebene, also würde es dein Array vermutlich mit 0x01010101 füllen). Nimm besser std::fill() oder std::fill_n (oder eine eigene for-Schleife).
-
int array[200] = { 1, };sollte alle elemente auf 1 setzen
-
r0nny schrieb:
int array[200] = { 1, };sollte alle elemente auf 1 setzen
Setzt nur das erste int auf 1, die restlichen auf 0 !