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

1

28.11.2003, 15:51

bin ich einfach nur blöd....?

kann mir jemand vielleicht sagen ob bei folgendem code-snipplet
ein fehler vorliegt.?

Quellcode

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
45
46
47
48
49
50
51
52
struct kf
{
    DWORD   m_number_atices;
    vertex  *m_atices;

    FREAKENGINE_API kf(){m_atices= NULL;};
    FREAKENGINE_API ~kf(){m_atices!=NULL?delete[]m_atices:1;};
};

struct anim_
{
    DWORD       m_number_keyframes;
    kf          *m_frames;

    FREAKENGINE_API anim_();
    FREAKENGINE_API ~anim_();
};

//std.-deconstructor
CFreakGeometry::~CFreakGeometry()
{
    m_vertices != NULL? delete []m_vertices:1;
    m_faces != NULL? delete []m_faces:1;
    //m_animations!=NULL?delete []m_animations:1;
    m_animations!=NULL?delete []m_animations:1;

    m_instances--;
}

class CFreakGeometry
{
private:

    //GEOMETRIE
    vertex                  *m_vertices;                    //vertizes
    face                    *m_faces;                       //faces
    DWORD                   m_number_vertices;              //anzahl der vertizes
    DWORD                   m_number_faces;                 //anzahl der faces

    DWORD                   m_fvf;                          //FVF

    //TEXTURE
    DWORD                   m_number_textures;


    //ANIMATIONSDATEN   --entwicklungsphase
    DWORD                   m_number_animations;
    anim_                   *m_animations;

protected:
public:
.....


fehlermeldung:

D:\FreakEngine\fe_c_d3dGeometry.cpp(80) : error C2446: ':' : Keine Konvertierung von 'const int' in 'void *'
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

die angabe bezieht sich auf die zeile im CFreakGeometry-deconstructor,
die da lautet:

m_frames!=NULL?delete [] m_frames:1;

ich verstehs nicht, bei allen anderen structs die ich so lösche funzt doch
auch...

Maxi

Treue Seele

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

2

28.11.2003, 18:41

Ich kannd die Zeile m_Frames!=NULL... nciht finden in deinem Code...

Wennich die Zeile übersehen hab, versuch doch mal anstatt :1 :NULL zu schreiben, vielleicht kann man den Doppelpunkt auch ganz wehglassen...
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

3

28.11.2003, 19:01

Hi,

wieso so ein verdammt unverständlicher code?

m_frames!=NULL?delete [] m_frames:1;

ich mein, das muss ja nun echt net sein.

Ein...

Quellcode

1
2
3
4
5
if (this->m_frames != NULL)
{
     delete [] this->m_frames;
     this->m_frames;
}


...würde einigen verständlicher klingen, außerdem wird der Pointer auch noch auf NULL gesetzt was er bei delete nicht wird, dort wird er nur gelöscht.

Denn mal ehrlich, diese abfrage per ? ist äquivalent zu meiner, nur kürzer und der pointer wird nich auf NULL gesetzt. Der wurde meines wissens um in Funktionsheadern eingesetzt zu werden z.B. so:

init (bool_wert ? 0x000000 : 0x000001);

Gruß,
Patrick

4

28.11.2003, 19:34

Kann deine Zeile auch nicht finden. Aber vieleicht ist einfach nur der Name falsch. Pruef die Namen noch mal genau.

@Patrick
Wieso soll man in einem Destruktor Werte auf NULL setzten. Die Klasse ist sowie so nicht mehr verwendbar, wenn der Destruktor aufgerufen wurde. Ergo spielt es auch keine Rolle ob ein Wert == NULL ist oder nicht. Was wiederum einfach nur unoetige Zeit kostet.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

5

28.11.2003, 20:34

hm okay also euch gefällt mein fragezeichenoperator nicht, okay.
nur hilft mir das leider nicht *g*
wenn ich ne if-abfrage benutz lässt sichs zwar compilieren aber
wenn dann der deconstructor aufgerufen wird, kommt immer ein
lustiger "...verursachte fehler durch ungültige seite" - fehler.

woran liegt das.? oder besser gesagt wieso mault der compiler
bei diesem struct und nur bei diesem. ?
bei allen anderen funzt perfekt.

*heul*

gruß 23

ps:
was bringt diese zeile. ?

this->m_frames;

6

28.11.2003, 20:37

pps: klar könnt ihr die zeile nicht finden ^^° hab mich verschreibt:

m_animations != NULL ? delete [] m_animations:1;

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

28.11.2003, 21:21

Was ist eigentlich ein "Atice"?

8

28.11.2003, 22:44

ach *g* ich versuch nur grade ein wenig bewegung in meine welt zu
bringen.
ein "atice" ist neben dem erbärmlichen versuch einen namen zu finden,
nix anderes als ein vertex zu einem bestimmten zeitpunkt.
praktisch ein Animierter Vertex = a + tice = atice *g*
nicht sehr orginell aber mir is nix mehr eingefallen.

kann mir nu eigentlich jemand helfen oder nich?
ich werd noch wahnsinnig

9

01.12.2003, 19:52

Zitat

ps:
was bringt diese zeile. ?

this->m_frames;
Nichts! Er hat nur das " = 0" vergessen.

Kann keinen Fehler finden. Ist mit sicherheit irgend ein kleines dummes Zeichen das irgendwo steht, das der Compiler nicht bemeckert aber trotzdem falsch ist. Sowas hatte ich auch schon mal. Schlussendlich hab ich den Code geloescht und neu geschrieben.

Vieleicht liegt es auch an irgendeinem Makro.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige