int arrays zusammenaddieren
-
enno-tyrant schrieb:
nunja, wenn ich:
for(int i=0;i<=sizeof(array);i++)
wirds ganz schlimm, auch bei:
for(int i=0;i<=sizeof(array[0]);i++)
wirds nicht besser.
was habe ich vergessen?
Hmm, wie wärs mit ...
schreib doch mal ein prog:
cout << sizeof(array) << endl;
cout << sizeof(array[0]) << endl; // ??
cout << sizeof(array) / sizeof(int) << endl;gibts nicht was wie array.length oder length(array)?
-
ein dank an euch, da die felder immer dynamisch sin sollten war das die bedingung für die schleife die ich suchte:
for(int i=0;i<=(sizeof(array) / sizeof(int))-1;i++)
ich vergaß einfach: " / sizeof(int))-1"
nochmals danke an euch
-
Und das funktioniert?
Kann ich mir nicht so recht vorstellen...
-
#include <iostream> using std::cout; using std::endl; int main() { //initialisierung der felder int array[]={2,5,8,9,7,4,5,7,8,9,10,11,14}, result=0; //ausgabe der felder for(int i=0;i<=(sizeof(array) / sizeof(int))-1;i++){ cout << array[i] << endl; //zusammenaddieren der feldelemente result += array[i];}; //ausgabe des ergebnisses cout << "\nAlle Felder zusammen addiert ergibt: " << result; return 0; }
-
ness schrieb:
Und das funktioniert?
Kann ich mir nicht so recht vorstellen...Klar, array ist ja ein Speicherbereich mit einem Zeiger drauf. Deshalb size(array) / size(element)
-
Aber müsste sizeof(array) nicht sizeof(int*) zurückgeben?
-
mein_compiler schrieb:
main.cpp:12: warning: comparison between signed and unsigned integer
kann man aber scheinbar ignorieren
-
enno-tyrant schrieb:
mein_compiler schrieb:
main.cpp:12: warning: comparison between signed and unsigned integer
kann man aber scheinbar ignorieren
klar, eine Größe ist immer positiv.
for (unsigned int i = 0; i < size....)
würde das Problem lösen
-
Microsoft schrieb:
The sizeof operator is often used to calculate the number of elements in an array using an expression of the form:
sizeof array / sizeof array[0]
-
-
OK, habt gewonnen, auch wenn das meinem Verständnis widerspricht...
-
ness schrieb:
OK, habt gewonnen, auch wenn das meinem Verständnis widerspricht...
Array != Zeiger
auch wenn ein Array sich oft wie ein Zeiger verhält.schau dir da mal den Unterschied an... Gibt im C Forum sicher eine Menge Threads dazu. Ansonsten kannst du ja nen eigenen Thread aufmachen wo wir dir die Unterschiede erklären können