Stranica: 2/4.

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 17:16
Postao/la jjj
nicky je napisao/la:
Ako se ne varam, ti stvoriš polje veličine i ,a i ti nije nigdje definiran?
++

Usput, odredi tip main() funkciji, ovo je aljkavo.

Re: [C++] - Segmentation fault

Postano: 07 lis 2009, 18:30
Postao/la stefan
Pa ako zelis polje fleksibilne veličine, moraš dinamički alocirati memoriju.

Kod: Označi sve

int polje[size];
radi samo ako je varijabla size konstantna (const), a posto je ti unoisiš - nije konstantna.

Kod: Označi sve

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

using namespace std;

main()
{
    int n, i;
    int* polje;
    cout << "Unesi broj članova polja: ";
    cin >> n;
    polje=new int[n]

    if (n>100)
        cout << "Krivi unos"<<endl;
    else
    {
        srand(time(NULL));
        for (i=0; i<n; i++)
        {
            polje [i]=rand();
            cout << polje [i] << endl;
        }
    }
}

Re: [C++] - Segmentation fault

Postano: 08 lis 2009, 14:50
Postao/la DŽINGIS KAN
Hvala stefane, sada radi kako treba!

Samo objasni čemu zvjezdica - int* polje, i polje=new int[n]; tj. kako na windowsu radi, a ovdje su potrebne izmjene.

Re: [C++] - Segmentation fault

Postano: 08 lis 2009, 15:10
Postao/la nicky
DŽINGIS KAN je napisao/la:Hvala stefane, sada radi kako treba!

Samo objasni čemu zvjezdica - int* polje, i polje=new int[n]; tj. kako na windowsu radi, a ovdje su potrebne izmjene.

Na win ti radi jer je tamo prilikom stvaranja varijable i na toj adresi ti piše smeće pa je i jako velik.

int *polje je pokazivač na polje koji je velik 4 byte-a. Prvo je potrebno definirati pokazivač na polje da bi kasnije mogao dinamički stvoriti polje proizvoljne veličine.
polje = new int[n] stvara polje veličine n, ukupne veličine sizeof(int) * n.

Re: [C++] - Segmentation fault

Postano: 08 lis 2009, 15:29
Postao/la stefan
DŽINGIS KAN je napisao/la:Samo objasni čemu zvjezdica - int* polje, i polje=new int[n]; tj. kako na windowsu radi, a ovdje su potrebne izmjene.
ne bi smijelo ni na windowsima raditi. ovisno o kompajleru, mozda inicijalizira varijablu i na neki veliki broj (max int) pa proradi. ali moralo bi tadi neku gresku, ili bar upozorenje.

Re: [C++] - Segmentation fault

Postano: 04 pro 2009, 07:59
Postao/la linux suks
windowsi ti (ako si radio u ms visual studio) podrzavaju kreiranje dinamickih polja dakle nemora ti polje biti unapred definirano. u vba je kod za redimenzioniranje polja islo jednostavno

redim (polje(0 to nesto)) ili redim (polje (o to nesto, 0 to nesto) )

za c++ u visual studio se nesjecam vise ali je isto bilo jednostavno redimenzionirati polje cak si mogao i sacuvati vec upucane clanove
:D

ms dev studio jos uvjek najbolji ms paket ikada napravljen :D (da su tak skodirali vindoze bila bi mozda konkurencija linuxu iako sumnjam)

Re: [C++] - Segmentation fault

Postano: 04 pro 2009, 08:45
Postao/la 4ndY
linux suks je napisao/la:windowsi ti (ako si radio u ms visual studio) podrzavaju kreiranje dinamickih polja dakle nemora ti polje biti unapred definirano. u vba je kod za redimenzioniranje polja islo jednostavno
To nije toliko do operacijskog sustava (svi to mogu), već do mogućnosti programskog jezika :misli

Iako čak i C ima mogućnost dinamičkog alociranja memorije (malloc), no programski jezici više razine imaju to ljepše riješeno jer dolaze i sa "sakupljačem smeća" 8-)

Re: [C++] - Segmentation fault

Postano: 04 pro 2009, 08:51
Postao/la Grof
4ndY je napisao/la: Iako čak i C ima mogućnost dinamičkog alociranja memorije (malloc), no programski jezici više razine imaju to ljepše riješeno jer dolaze i sa "sakupljačem smeća" 8-)
Da, i stvaraju šlampave programere koji zaboravljaju pozivati destructore.

Dođe mi više kao medjeđa usluga ;)

Re: [C++] - Segmentation fault

Postano: 04 pro 2009, 08:52
Postao/la linux suks
mislio sam u ms studio :) on ima "malo" izmjenjene libove :) nije se dogodilo jedanput da nesto sto je radilo i moglo se skompajlat u msstudio nije radilo i nije se moglo skompajlat na drugom kompajleru ali mislim ipak malo je ljudi koji ce moci reci iskreno da msstudio nije jedan od najboljih programskih okruzenja

jedino mi zao kaj su vba izbacili :( s njime se mogu cudesa napraviti u excelu i autocadu)

Re: [C++] - Segmentation fault

Postano: 04 pro 2009, 09:10
Postao/la Grof
linux suks je napisao/la: jedino mi zao kaj su vba izbacili :( s njime se mogu cudesa napraviti u excelu i autocadu)
Ja za AutoCAD (točnije AutoCAD Civil3D) koristim MS Visual Basic 2008 Express Edition i radi odlično. Prepoznaje sve Autodeskove Assemblye i kompajlira uredno.