Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo,

warum verhält sich die variable i im folgenden code so komisch ?

sie sollte jeweils eigentlich um 1 erhöht werden, erhöht sich bei mir aber um 1millionirgendwas. wenn ich double sum[1]; zu double sum[2]; ändere klappt alles. bin anfänger und deswegen für eine klärung sehr dankbar.

#include <cstdlib>

#include <iostream>

#include <math.h>

#include <stdio.h>

using namespace std;

// Schwerpunkt einer Punktschar

// pn=Anzahl der Punkte

void fc_splist(double feld[][2], int pn)

{

int i=0;

double sum[1];

sum[0]=0, sum[1]=0;

for (i=0; i<pn; i++)

{ cout << "\ni: " << i;

sum[0]=sum[0]+feld[0];

sum[1]=sum[1]+feld[1];

}//for

sum[0]=sum[0]/pn;

sum[1]=sum[1]/pn;

cout << "\nxs:" << sum[0] << " ys:" << sum[1] << "\n";

cout << "\ni: " << i;

}

int main()

{

double b [3][2]={

{1,2},

{3,4},

{10.9,12.3}

};

fc_splist(b,3);

system("PAUSE");

return 1;

}

Geschrieben
warum nicht ?
Weil es ein Array mit nur einem Element ist. sum[2] wäre das zweite Element. Wenn dein Array kein zweites Element hat, darfst du nicht darauf zugreifen.

Wenn du ein Array als "typ name[x]" deklarierst, dann ist der größte erlaubte Index für den Zugriff x-1, nicht x.

und warum hat es einfluss auf i ?

Dein Code erzeugt undefiniertes Verhalten, insofern ist es ziemlich sinnlos, sich darüber Gedanken zu machen, was passiert, weil alles passieren könnte. Der Code könnte sogar funktionieren.

Tatsächlich wird es wohl so sein, dass i im Speicher hinter sum liegt. Indem du auf sum hinter dessen Ende zugreifst, pfuschst du im Speicherbereich von i herum.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...