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

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

11

31.12.2006, 17:37

Zitat von »"Firefly"«

@David_pb: Das ist doch völlig egal...Geschmackssache meiner Meinung nach, wobei ich persönlich ein Array bevorzuge! Einfacher zu implementieren und relativ effizient!


Ok, zeig mir eine leichte Lösung für o.g. Problem, die nur mit einem Array behandelt wird!
@D13_Dreinig

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

12

31.12.2006, 19:06

@david_pd: Manchmal habe ich den Eindruck, dass du dich regelrecht in die std Lösungen verliebt hast. Natürlich gibt es Probleme, wo die std-Sachen einfach praktisch sind, aber warum sollte man mit Kanonen auf Spatzen schießen, wenn es um einfache sachen wie ein Zahlenarray geht?

Natürlich gibt es immer irgendeinen Fall wo man diese und jene Lösung nutzen kann/muss, aber sowas ist nicht wirklich immer praxisbezogen...
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.

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

13

31.12.2006, 20:00

Zitat

C-/C++-Quelltext

1
2
3
int n; 
int *wert; 
wert=new int[n];

wenn dir das zu schwer IST solltest du dringend nochmal einen Chrashkurs in C++ unternehmen!
Saubere+einfache+effiziente Lösung!

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

14

31.12.2006, 20:01

Zitat von »"Firefly"«

@Faule Socke: Guck doch mal was ich schon geschrieben hab... ;)


Du hast es nur net so gut erklärt... ausserdem hast du das mit dem delete vergessen... und wir wollen ja net das sein programm speicherleks produziert....

EDIT
Ausserdem habe ich das verhalten von new im falle eines Fehlers erklärt...

mfg,

Faule Socke

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

15

01.01.2007, 07:40

Zitat von »"Sk!p"«


Aber nur damit ich nicht völlig in Verruf gerate: Mein Problem war schon etwas komplexer. Da geht es um ein Projekt in Java...


Sorry, aber eure sämtlichen Kommentare und Anspielungen von wegen C++ lernen, STL oder nicht,... sind ziemlich am Thema vorbei :roll:

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

16

01.01.2007, 13:37

Zitat von »"Firefly"«

Zitat

C-/C++-Quelltext

1
2
3
int n; 
int *wert; 
wert=new int[n];

wenn dir das zu schwer IST solltest du dringend nochmal einen Chrashkurs in C++ unternehmen!
Saubere+einfache+effiziente Lösung!


Diese Lösung geht nicht mit meinem Beispiel... Hättest du korrekt gelesen würdest du das auch wissen. Die Lösung hierfür wäre die Verwendung von Placement new:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const int size = 10;

    // Speicher allokieren

    void* buffer = operator new[]( size * sizeof( foo ) );
    foo* fooptr = static_cast< foo* >( buffer );

    for ( int i = 0; i < size; ++i )
    {
        new ( &fooptr[ i ] ) foo( i );
    }

    // Speicher deallokieren

    for ( int i = size-1; i >= 0; --i )
    {
        fooptr[ i ].~foo();
    }

    operator delete[]( buffer );


Und das ist nun wirklich nicht effizient und leicht. Da ziehe ich doch lieber einen vector vor.

Achja, es kommt durchaus oft vor das man keinen Std C'tor zur verfügung gestellt hat. Und gleich bekommt man die lustigsten Probleme mit Firefly's fehlerhafter Methode.

Zitat


solltest du dringend nochmal einen Chrashkurs in C++ unternehmen!


Evtl solltest du nochmal einen C++ Crashkurs machen, sodass du die Sprache auch kannst bevor du hier irgendwelche seltsamen, zweifelhaften und falschen Lösungen postest!

grüße
@D13_Dreinig

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

17

01.01.2007, 14:22

SO, jetzt mal genug der Anfeindungen und bitte sachlich bleiben :!:

Zitat

Achja, es kommt durchaus oft vor das man keinen Std C'tor zur verfügung gestellt hat.


Das kann ich nicht ganz nachvollziehen. Ich behaupte jetzt einfach mal, dass ich nicht gerade wenig programmiere. Wenn es um ein Problem geht wofür man durchaus ein Array nutzen kann(also feststehende Anzahl), dann handelt es sich meist um einfache Datenobjekte(meine Erfahrung).
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.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

18

01.01.2007, 14:50

Zitat von »"Nox"«

SO, jetzt mal genug der Anfeindungen und bitte sachlich bleiben :!:

Zitat

Achja, es kommt durchaus oft vor das man keinen Std C'tor zur verfügung gestellt hat.


Das kann ich nicht ganz nachvollziehen. Ich behaupte jetzt einfach mal, dass ich nicht gerade wenig programmiere. Wenn es um ein Problem geht wofür man durchaus ein Array nutzen kann(also feststehende Anzahl), dann handelt es sich meist um einfache Datenobjekte(meine Erfahrung).


Meist, aber nicht immer. Und dementsprechend sollte man auch die diversen Lösungsmöglichkeiten kennen.

grüße
@D13_Dreinig

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

19

01.01.2007, 15:02

Zitat

Und dementsprechend sollte man auch die diversen Lösungsmöglichkeiten kennen.


Da stimme ich dir zu.(Habe auch nie was Gegenteiliges behauptet afaik)
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.

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

20

01.01.2007, 16:43

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
class foo
{
public: 
    void foob(int x);
};
int main()
{
    foo *pFoo;
    pFoo=new foo[10];
    delete [] pFoo;
return 0;
}

funktioniert bei mir einwandfrei...

Werbeanzeige