Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Programm legt arrays falsch an

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.05.2008, 18:19 Uhr
Anubis



Ich habe 2 arrays in meinem Programm angelget, doch später merkte ich, dass manche (hier a[1] und b[2]) auf den selben speicher gelegt werden. Ein Teil meines Codes:


C++:
double a[2];
double b2];
double *pAZeiger = &a[1];
double *pBZeiger = &b[2];

if (pAZeiger == pBZeiger) //If schleife wird ausgelöst
{
    cout << "Fehler !";
    cin >> irgendwas;
}



Wie kann ich das Programm dazu bewegen die Arrays vernünftig abzuspeichern?

Dieser Post wurde am 07.05.2008 um 18:23 Uhr von Anubis editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.05.2008, 19:15 Uhr
0xdeadbeef
Gott
(Operator)


Array-Indices in C und C++ laufen von 0 bis Größe - 1, in diesem Fall von 0 bis 1. Das heißt

C++:
double b[2];
// ...
double *pBZeiger = &b[2]; // <-- erzeugt undefiniertes Verhalten


...weil 2 kein gültiger Index mehr ist.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.05.2008, 19:45 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


b[2] ist da zufällig die speicheradresse von pAZeiger, darum trifft das zu. Wie gesagt, Arrays fangen bei 0 an, nicht bei 1 ;-)

also


C++:
double a[2];




hat die Felder a[0] und a[1]
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.05.2008, 19:48 Uhr
Anubis



Danke für die schnelle Antwort und die Hilfe.
Das erklärt vieles .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: