| | |
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal M4rek: 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
|
|
Registrovaný: 11.01.09 Prihlásený: 18.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 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.
|
|
Registrovaný: 01.04.10 Prihlásený: 08.10.11 Príspevky: 339 Témy: 0 | Napísal Forty-: 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.
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 Bydlisko: Zilinska Un... |
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 |
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal autor témy M4rek: 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
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 Bydlisko: Zilinska Un... |
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 |
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal autor témy M4rek: 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
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 Bydlisko: Zilinska Un... |
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 |
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal autor témy M4rek: 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
|
|
Registrovaný: 11.01.09 Prihlásený: 18.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 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.
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 Bydlisko: Zilinska Un... |
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 |
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal autor témy M4rek: 09.05.2011 22:20 | |
|
diky, uz to mam vyriesene
|
|
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| segmentation fault v Assembler, C, C++, Pascal, Java | 10 | 984 | 12.11.2007 13:19 m@-nX | | Segmentation fault v Assembler, C, C++, Pascal, Java | 9 | 264 | 27.11.2012 19:08 Najiva | | QtCreator : Segmentation fault v Assembler, C, C++, Pascal, Java | 1 | 352 | 27.12.2010 19:39 Forty- | | Segmentation fault v C v Assembler, C, C++, Pascal, Java | 0 | 321 | 30.01.2012 19:13 KocuR | | string v C = segmentation fault v Assembler, C, C++, Pascal, Java | 1 | 290 | 05.11.2011 12:01 Fico | | General protection fault v Operačné systémy Microsoft | 0 | 518 | 27.08.2008 20:57 misso |
| 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
|
|