Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok NapísalOffline : 07.05.2011 10:49

Robim Sokobana v C-cku (podobne Karlovi) a mam uz dost dlhy program a teraz hocico ked dopisem do mainu, aj ked je to spravne zapisane, kompilacia totiz prebehne bez problemov tak potom mi vypise pri spusteni segmentation fault ... co s tym ? co to znamena ?
Diky


Offline

Skúsený užívateľ
Skúsený užívateľ
Segmentation fault - C

Registrovaný: 11.01.09
Prihlásený: 18.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 07.05.2011 10:59

Najviac pravdepodobne je, ze pracujes so smernikom (zapisujes donho), ktory je NULL. Samozrejme, moze byt viacero dovodov segmentation fault, ale toto je velmi casty pripad. Najlepsie bude, ak pomocou debuggera budes krokovat cely program s tym, ze budes vchadzat do vsetkych tvojich funkcii ( step in alebo podobny nazov ). Tak sa dostanes az do miesta, kde mas chybovy kod.


Offline

Užívateľ
Užívateľ
Segmentation fault - C

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 339
Témy: 0
Príspevok NapísalOffline : 07.05.2011 11:29

Uz som to vela krat pisal - segfault je jeden z najcastejsich C errorov, bez kodu nemame sancu na to prist.


Offline

Užívateľ
Užívateľ
Segmentation fault - C

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok NapísalOffline : 07.05.2011 13:12

Debuger, by ti mal vypisat presny riadok na ktorom nastala chyba, tak tu skopni tu cast kodu a pohneme sa mozno dalej :). Nemusis krokovat kod, staci, ked v debugu nechas spadnut program a on ti vypise podrobne info o chybe.







_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok Napísal autor témyOffline : 08.05.2011 14:45

to ze ten ked je strasne dlhy, takze asi nikto z vas by ho nekontroloval pretoze mi napise segfault na riadku 33 kde nic nie je, je to prazdny riadok. takze sem neviem dat ani cast kodu, kde by mala byt chyba ... okolo toho riadku 33 su len deklaracie premennych a struktur. No zaujimave, ze uz to nepise a ani som tam takmer nic nezmenil odvtedy.

// pridané po 5 hodinách 29 minútach od posledného príspevku

a zas segmentation fault ... a zas neviem preco ... ach jaj


Offline

Užívateľ
Užívateľ
Segmentation fault - C

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok NapísalOffline : 08.05.2011 15:54

Pouzivas tam polia (staticke), new - delete (dynamicke), alebo inu pracu so smernikmi? Je aj to mozne, ze preplnas nejaky buffer, alebo ti v nejakej podmineke zapise do smernika, ktory je NULL. Tazko povedat. Takyto problem, som si vzdy cez debuger odstranil za chvilku, potom nevies pouzivat dubuger. Nik ti neporadi, ked nedas info :).







_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok Napísal autor témyOffline : 08.05.2011 20:18

uz mi zas nepise segfault, takze je to OK, keby zas zacalo dam sem cast kodu

ale mam teraz este jeden problem, pise mi warningy:

main.c:417: warning: assignment makes pointer from integer without a cast


mam na tom riadku: level = levels_init();

medzi globalnymi premennymi mam:
LEVEL* level;

struktura level:
Kód:
typedef struct level
{
    char name[20];
    char password[20];
    char map[100];
    struct level *nextLevel;
}LEVEL;


a funkcia levels_init() :
Kód:
LEVEL* levels_init(void)
{
    LEVEL* ci, *firstItem;
    firstItem = ci = do_levels("at the beginning", "sokoban", level1);
    ci->nextLevel = do_levels("the next level", "budokan", level2);
    ci = ci->nextLevel;
    ci->nextLevel = do_levels("level 3", "saboteur", level3);
    ci = ci->nextLevel;
    ci->nextLevel = NULL;
    return firstItem;
}


... ako to zmenit aby to bolo OK ? diky


Offline

Užívateľ
Užívateľ
Segmentation fault - C

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok NapísalOffline : 08.05.2011 21:07

V tom zdrojaku nie je ani jeden riadok dobry, priradzujes nulove pointre, bez adresy. Preco tie funkcie do_levels() a levels_init() nepresunies do struktury? Vytvor si dalsiu strukturu ako levelManager, kde budes spravovat levely. Este jedna vec, ta funkcia do_levels() alokuje pamat pomocou malloc?







_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok Napísal autor témyOffline : 09.05.2011 19:46

ano do_levels aj alokuje pamät pomocou malloc a pridava zaznamy do spojkoveho zoznamu

a veru neviem pouzivat debugger, kedze sa len ucim programovat tak som s debuggerom nikdy nerobil ... robim v netbeanse ... dam Debu main project a co mam robit dalej ? ako pomocou debuggera zistim kde mam nieco zle ?

// pridané po 2 hodinách 39 minútach od posledného príspevku

pise mi teraz segmentation fault uz len v pripade, kde mam switch na stlacenu klavesu, mam tam 4 moznosti (case), ked sa stlaci 1-ka vykona sa nieco, ked sa stlaci 2- ka nieco .. atd .. a pri vetve default v tom switchi mam len break; ... ze ak sa nestaci cislo od 1 po 4 ale nejaka ina klavesa tak sa vykona len break, no prave vtedy ked stlacim hocijaku klavesu tak mi vypise segmentation fault

.. ostatne funguju, preto sa mi to zda divne


Offline

Skúsený užívateľ
Skúsený užívateľ
Segmentation fault - C

Registrovaný: 11.01.09
Prihlásený: 18.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 09.05.2011 21:39

M4rek píše:
vykona sa nieco

A prave to nieco moze byt problem. Ak chces pomoct, musis nam ukazat aspon cast kodu.


Offline

Užívateľ
Užívateľ
Segmentation fault - C

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok NapísalOffline : 09.05.2011 22:11

Nepouzivam netbeanse, ale skus tam dat breakpoint, ako je znazornene tu ta modra gulicka. Mal by stacit dvojklik na bocnu listu daneho riadku. Potom to spusti v debagu, program sa ti zastavi na danom bode a potom cez nejake tlacitka mozes krokovat program, step by step :). Skusaj, uc sa :).
http://i.zdnet.com/blogs/Burnette_gwt_M ... kpoint.png







_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok Napísal autor témyOffline : 09.05.2011 22:20

diky, uz to mam vyriesene


Odpovedať na tému [ Príspevkov: 12 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. segmentation fault

v Assembler, C, C++, Pascal, Java

10

984

12.11.2007 13:19

m@-nX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Segmentation fault

v Assembler, C, C++, Pascal, Java

9

264

27.11.2012 19:08

Najiva Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. QtCreator : Segmentation fault

v Assembler, C, C++, Pascal, Java

1

352

27.12.2010 19:39

Forty- Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Segmentation fault v C

v Assembler, C, C++, Pascal, Java

0

321

30.01.2012 19:13

KocuR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. string v C = segmentation fault

v Assembler, C, C++, Pascal, Java

1

290

05.11.2011 12:01

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. General protection fault

v Operačné systémy Microsoft

0

518

27.08.2008 20:57

misso Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra