Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

19.02.2009, 16:47

Das Zitat ist geklaut und ins deutsche uebersetzt, find jetzt aber nicht den Urheber.
If it were not for laughter, there would be no Tao.

12

19.02.2009, 16:57

joa ich mein C0000005
ein Null pointer prob also, hmm muss ich mal checken, da stellt sich gleich die frage was passiert wen ich auf nen NULL zugreifen versuch, beschwert er sich dann? oder macht er das einfach nciht, wenn er das macht und sich nur beschwert, wie kann ich abfragen ob was ein null pointer ist, weil teilweise hab cih das eingebaut als rückgabewert wen es keinen dementsprechenden pointer gibt, dann wäre das natürlich fatal.
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

13

19.02.2009, 17:01

ok die frage wurde mir inzwischen beantwortet, dan hab ich ne mögliche fehlrquelle werde das mal checken gehen
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

14

19.02.2009, 17:13

Der Debugger ermöglichte es einem auch, einen Programmteil Schritt für Schritt durch zu gehen und die aktuellen Werte zu betrachten (der eigentliche Sinn eines Debuggers). Also los, Haltepunkt setzen und dann alles Schritt für Schritt durchgehen und schauen was für Werte du erwartest und welche er dir anzeigt.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

15

19.02.2009, 17:13

Zitat von »"Hoootie"«

ok die frage wurde mir inzwischen beantwortet, dan hab ich ne mögliche fehlrquelle werde das mal checken gehen


Ich glaub das sollte hier nochmal jemand wiederholen :)
Glaub ich hab das net ganz richtig beschrieben....;)



Naja ich glaube dass es daran liegt dass du auf Vektoren ausserhalb ihrer
Bereiche (out of rage) zugreifen willst.. denn ich bekomme bei mir
immer nen out of rage-fehler

16

19.02.2009, 17:20

also das man mit dem debugger einzelne abschnitte überprüft, ist mir schon klar, das habe ich auch getan, aber in einer zeile

hafling* neues = new hafling(this->m_ptimer,this->m_speicher,(m_haflings.size()));

beendet er das programm mit besagtem fehler, im Konstruktor kommt er jedoch nie an, das habe ich ausführlich probiert.

und eine zeile darüber gibt er mir noch aus eine zeile darunter nicht mehr.

und wie gesagt, im debugger hab ich mir das angeschaut, sämtliche variablen haben den Wert den sie haben sollen, pointer scheinen auch in ordnung zu sein etc.

sämtliche NULL pointer die ich als abspeispointer als fail rückgabewert zurückgegeben habe, habe ich entfernt, dass kann also auch nicht das problem sein
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

19.02.2009, 17:28

was hat this für da nen wert und wie schaut der konstruktor von halfling aus?

18

19.02.2009, 17:33

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
hafling::hafling(timer * in_uhr, save * speicher, int in_id)
{
    std::cout<<"baum";
    m_aufenthaltsort = 0;
    this->set_live(false);
    m_speicher = speicher;
    this->m_uhr = in_uhr;
    m_id = in_id;
    this->ueberschreib(0,0);

    return;
}

//das wird noch aufgerufen, sollte der hafling schonmal gelebt haben oder von nem anderen ersetzt werden.

void hafling::ueberschreib(int mutter, int vater)
{
    if(mutter == 0 && vater == 0)
    {
    }
    else
    {
        hafling* pointer = m_speicher->get_hafling_handle(mutter);
        m_aufenthaltsort=pointer->get_aufenthaltsort();
    }

    this->set_live(true);
    m_flucht = false;
    m_flucht = false;
    m_lebt = 1;
    m_alter = 1;
    m_geburtstag = 3600*24*365 + m_uhr->secs_completed();
    m_hitpoints = 100;
    m_hunger = 100;
    m_durst = 100;
    m_freude = 100;
    m_energie = 100;
    for(int j = 1;j <=10; j++)
    {
        m_skill[1][j] = 0;
        m_skill[2][j] = generator(0, 100);
        m_skill[3][j] = 0;
    }
    return;
}


EDIT by dot: Code-Tags
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

19

19.02.2009, 17:43

woher weist du dass er im ctor nie ankommt?
bei dem

C-/C++-Quelltext

1
std::cout << "baum";


solltest du evtl. ein std::flush oder std::endl hinmachen weil du sonst nicht sicher sein kannst dass er das auch ausgibt...


wenn er in ctor wirklich nicht ankommt dann kanns eh nur an der Zeile liegen:

C-/C++-Quelltext

1
hafling* neues = new hafling(this->m_ptimer,this->m_speicher,(m_haflings.size())); 


und da kann ne Acces Violation eigentlich nur von nem fehlerhaften this pointer kommen. deswegen nochmal die frage: was hat this in obiger zeile denn für einen wert?

achja, n kleiner tipp: schau dir mal initialisierungslisten an ;)

20

19.02.2009, 17:50

bekomm das vom compiler "this=(save * const) 0x3d25c0"

und da er einmal in den compiler reinkommt, aber das 2. mal nicht mehr, kann ich mir nciht wirklich vorstellen das es an der zeile liegt.
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

Werbeanzeige