Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [C++] Hulp met Array - segmentatie fout  (gelezen 974 keer)

Offline Joshua822

  • Lid
  • Steunpunt: Nee
[C++] Hulp met Array - segmentatie fout
« Gepost op: 2009/07/08, 21:34:16 »
Goede avond,

ik zit weer eens wat te stoeien met wat simpele C++ code. Dit is de code :

#include <iostream>

 using namespace std;

main() {
  
  int array[1];
  
  array[0] = 5;
  array[1] = 6;

  cout<<""<< array[1]<< "\n";
 
}

Dit werkt goed. Het programma print netjes "6" naar het scherm. Maar, de regel er onder krijg ik de melding " Segmentatie fout ". Nu weet ik eigenlijk niet wat er loos is.

Graag hoor ik uw bedenkingen.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: [C++] Hulp met Array - segmentatie fout
« Reactie #1 Gepost op: 2009/07/08, 21:51:15 »
Ik weet niet meteen de oplossing, maar wat een gekke printregel...

Dit is beter:
  cout << array[1] << endl;

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Re: [C++] Hulp met Array - segmentatie fout
« Reactie #2 Gepost op: 2009/07/08, 21:51:35 »
Memory corruption; je moet de array declareren als int array[2] omdat je 2 plaatsen nodig hebt
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Re: [C++] Hulp met Array - segmentatie fout
« Reactie #3 Gepost op: 2009/07/08, 21:53:54 »
nog even een bijkomende opmerking: ANSI C++ standaard vereist dat main als returntype int heeft en dus een errorcode returned, dus int main() ipv main en aan het einde van de functie als laatste regel return 0;
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline Joshua822

  • Lid
  • Steunpunt: Nee
Re: [C++] Hulp met Array - segmentatie fout
« Reactie #4 Gepost op: 2009/07/08, 23:02:49 »
Bedankt profoX, het lag inderdaad daar aan. Een kleine vergissing kan een grote fout veroorzaken.