JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=b6aa00f779351f8ac1a459ea538dd35cMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Dynamisches Feld mit Lücken?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 17.08.2005, 21:53    Titel: Dynamisches Feld mit Lücken? Antworten mit Zitat

Ist folgendes eigentl. problemlos einsetzbar?:

CPP:
int * zahl[];

zahl[0] = new int;
zahl[999] = new int;

zahl[0] = 4;
zahl[999] = 1233;


Solange ich nur auf die Elemente zugreife, die per "new" gefüllt wurden, gibt es doch keine Probleme, oder habe ich etwas missachtet?
Ist das gar üblich?

Funktionieren tut's bisher in kleinem Maße auf jeden Fall.
Damit lassen sich Daten nämlich auf elegante Weise verwalten, finde ich.

Wollte euch, die Erfahrenen, zur Sicherheit um Rat bzw. Bestätigung bitten, damit ich in dieser Richtung sorglos was (größeres) basteln kann und nicht am Ende ... Rolling Eyes Wink
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 17.08.2005, 22:03    Titel: Antworten mit Zitat

Das Verhalten ist undefiniert, da du an zahl[999] einen Wert (Speicheradresse) zuweißt. Der Speicherbereich zahl[999] ist aber undefiniert.

Du schreibst eine Adresse, die reservierten (gültigen) Speicher enthält an eine undefinierte Adresse.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 17.08.2005, 23:19    Titel: Antworten mit Zitat

Das heißt so wie oben dargestellt, läuft es nur auf gut Glück gut?
Danke für den Hinweis, dann werde ich mir was anderes überlegen. Smile
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 09:22    Titel: Antworten mit Zitat

Es wird wahrscheinlich gar nicht laufen. (Abstürzen)
Ich würde vorschlagen, eine STL-Map zu verwenden, und dort die Key-Value-Werte zu speichern.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 10:33    Titel: Antworten mit Zitat

So höchstens:

CPP:
int * zahl[1000];

zahl[0] = new int;
zahl[999] = new int;

*zahl[0] = 4;
*zahl[999] = 1233;

delete zahl[0];
delete zahl[999];



_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 17:23    Titel: Antworten mit Zitat

OLiver hat Folgendes geschrieben:
So höchstens:

CPP:
int * zahl[1000];

lol?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 17:56    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
OLiver hat Folgendes geschrieben:
So höchstens:

CPP:
int * zahl[1000];

lol?


Question
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 18:04    Titel: Antworten mit Zitat

Wie sonst? [] klappt auf jedenfall nicht. -> listen, oder sonstwas -> stl
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 18:37    Titel: Antworten mit Zitat

Shocked

wieso hab ich da "lol?" geschrieben? Ich könnte schwören, dass ich da was falsches gesehen hab... Dabei ists doch nur ein Array aus 1000 int-Zeigern... thinking

Irgendwie bin ich heut en bisschen verwirrt. Naja, sry für spam

Gruß DirectXer, der sich ernst fragt, ob er ne Brille braucht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 18.08.2005, 22:10    Titel: Antworten mit Zitat

Ich werde vorerst mal ein "größeres" Zeigerfeld anlegen.

1000 Stück belegen ja sowieso nur ~4KB. Wink

Die STL werd' ich mir wohl dann vielleicht doch irgendwann mal anschauen müssen.
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 19.08.2005, 07:52    Titel: Antworten mit Zitat

1000 Zeiger einfach mal so anzulegen ist eine zimlich dumme Idee - auch wenn es "nur" 4KB sind. Ich will jetzt nicht gross auf die Nachteile älterer Systeme verweisen, aber 4KB ist schon eine ganze Menge Speicher, der so verloren geht. Die STL ist zwar nicht für Ihr Platzsparendes Konzept bekannt, aber so ist esimmer noch besser als "drauf los" irgendwas zu reservieren, mit der Annahme, es wird schon keinen Überlauf geben...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum