Stranica: 1/4.

[C++] - Segmentation fault

Postano: 06 lis 2009, 15:16
Postao/la DŽINGIS KAN
Kod izrade polja (jednodimenzionalnih i višedimenzionalnih), u terminalu se ispiše Segmentation fault umjesto da se izvrti program.

U polje se učitavaju slučajni brojevi - tipa int sa srand i rand().
Sad mi nije jasno - na windowsima taj isti program radi (u školi, doma ih nemam), a na Linux-u neće, tj. javlja se navedena greška. Išao sam na wiki, ali mi nije baš jasno u čemu je štos.

Programe pišem u Code::Blocks IDE.

Ima li tko viziju?

Re: [C++] - Segmentation fault

Postano: 06 lis 2009, 16:10
Postao/la nicky
Ukratko, imaš pointer koji leti izvan ograničenja. Pošalji mi kod pa ćemo otkrit grešku.

Re: [C++] - Segmentation fault

Postano: 06 lis 2009, 18:51
Postao/la jjj
Osim ako ne pišeš kod pod prisegom tajnosti, stavi ga na neki pastebin i linkaj ovdje, ponestalo mi melangea.

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 15:23
Postao/la DŽINGIS KAN
Znači, ja unesem broj članova polja, a program ih treba ispisati.

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

main()
{
int n, i;
int polje ;
cout << "Unesi broj članova polja: ";
cin >> n;
if (n>100)
cout << "Krivi unos"<<endl;
else
{
srand(time(NULL));
for (i=0; i<n; i++)
{
polje =rand();
cout << polje << endl;
}
}
}

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 15:32
Postao/la shicy
ako ti je iostream isto biblioteka, onda ti i za nju triba bit <iostream.h>

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 15:55
Postao/la DŽINGIS KAN
Shicy je napisao/la:ako ti je iostream isto biblioteka, onda ti i za nju triba bit <iostream.h>
E ja ne bi reko.
Ide samo <iostream>

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 16:06
Postao/la The Acacia Strain
DŽINGIS KAN je napisao/la:
Shicy je napisao/la:ako ti je iostream isto biblioteka, onda ti i za nju triba bit <iostream.h>
E ja ne bi reko.
Ide samo <iostream>
makneš using namespace std; i onda možeš koristii onaj .h dodatak u iostream bibilioteci
i kako to da na kraju nema nešto kao system pause; i return 0;, tako da kada želiš dobiti rješenje programa da ti ekran samo ne zabljesne, već da ti pritiskom bilo koje tipke ugasiš...
nisam dugo radio u C++, pa sam možda nešto pomiješao ;)

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 16:09
Postao/la DŽINGIS KAN
Na windowsima treba system("PAUSE"); ili getch(); ovdje ne - ekran se normalno pojavi i ispiše navedenu grešku.

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 16:25
Postao/la shicy
a ne znam, nisam programira u c++ -u...svojedobno sam se igra sa "običnim" C-om...

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 17:00
Postao/la nicky
DŽINGIS KAN je napisao/la:Znači, ja unesem broj članova polja, a program ih treba ispisati.

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

main()
{
int n, i;
int polje ;
cout << "Unesi broj članova polja: ";
cin >> n;
if (n>100)
cout << "Krivi unos"<<endl;
else
{
srand(time(NULL));
for (i=0; i<n; i++)
{
polje =rand();
cout << polje << endl;
}
}
}



Ako se ne varam, ti stvoriš polje veličine i ,a i ti nije nigdje definiran? Probaj definirat polje[100] i ići od i do 100 pa vidi dal se još uvijek javlja greška.

Probaj ispisat sizeof(polje) - veličina polja, neznam koja ti točno naredba treba,pa vidi što ti prog vrati.