[C++] - Segmentation fault

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Avatar
DŽINGIS KAN
Postovi: 132
Pridružen/a: 03 sij 2009, 20:47
Spol: M
OS: ORACLE SOLARIS 11.1

[C++] - Segmentation fault

Post 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?
Avatar
nicky
Site Admin
Postovi: 2074
Pridružen/a: 07 pro 2007, 16:30
Spol: Ž
OS: ubuntu 12.04
Lokacija: Zagreb

Re: [C++] - Segmentation fault

Post Postao/la nicky »

Ukratko, imaš pointer koji leti izvan ograničenja. Pošalji mi kod pa ćemo otkrit grešku.
Avatar
jjj
Postovi: 1451
Pridružen/a: 04 lip 2009, 00:46
OS: Nepu Yvahk
Lokacija: Classyfied

Re: [C++] - Segmentation fault

Post Postao/la jjj »

Osim ako ne pišeš kod pod prisegom tajnosti, stavi ga na neki pastebin i linkaj ovdje, ponestalo mi melangea.
Avatar
DŽINGIS KAN
Postovi: 132
Pridružen/a: 03 sij 2009, 20:47
Spol: M
OS: ORACLE SOLARIS 11.1

Re: [C++] - Segmentation fault

Post 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;
}
}
}
Avatar
shicy
Postovi: 8905
Pridružen/a: 28 lip 2009, 22:49
Spol: M
OS: Slackware

Re: [C++] - Segmentation fault

Post Postao/la shicy »

ako ti je iostream isto biblioteka, onda ti i za nju triba bit <iostream.h>
Avatar
DŽINGIS KAN
Postovi: 132
Pridružen/a: 03 sij 2009, 20:47
Spol: M
OS: ORACLE SOLARIS 11.1

Re: [C++] - Segmentation fault

Post 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>
The Acacia Strain
Postovi: 1464
Pridružen/a: 12 kol 2008, 00:06
Spol: M

Re: [C++] - Segmentation fault

Post 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 ;)
DebianResources
DebianHandbook
devil je napisao/la:nije neka tamo kanta pametnija od nas tu.
Avatar
DŽINGIS KAN
Postovi: 132
Pridružen/a: 03 sij 2009, 20:47
Spol: M
OS: ORACLE SOLARIS 11.1

Re: [C++] - Segmentation fault

Post Postao/la DŽINGIS KAN »

Na windowsima treba system("PAUSE"); ili getch(); ovdje ne - ekran se normalno pojavi i ispiše navedenu grešku.
Avatar
shicy
Postovi: 8905
Pridružen/a: 28 lip 2009, 22:49
Spol: M
OS: Slackware

Re: [C++] - Segmentation fault

Post Postao/la shicy »

a ne znam, nisam programira u c++ -u...svojedobno sam se igra sa "običnim" C-om...
Avatar
nicky
Site Admin
Postovi: 2074
Pridružen/a: 07 pro 2007, 16:30
Spol: Ž
OS: ubuntu 12.04
Lokacija: Zagreb

Re: [C++] - Segmentation fault

Post 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.
Odgovori