Español
Bugs y vermeintliche

Hecho: Bugs en DISPOSE + Objektvariablen?

 

Sebastian
Sprenger
Wenn Yo una Objeto con Disponer  freigebe y todavía una Objeto en dieselbe Variable erzeuge, bekomme Yo bajo XProfan10Libre y 11 el Fehler Zuweisung en dieses Objeto no posible . Wenn Yo zusätzlich a oder en lugar de el Disponer  una Zona con 0 Bytes dimensioniere, tuts! ¿Por qué pero no en Disponer ?
KompilierenMarcaSeparación
class KLASSE=feld%
var objekt#=new(KLASSE)
dispose objekt#  das alleine funktioniert nicht
dim objekt#,0  nur damit funktionierts
objekt#=new(KLASSE)/pre>
Desweiteren tener Yo, el Eindruck, dass Objetos en Arrays nada disponer d voluntad... Zum Vergleich: En diesem Code sin Arrays kommt sí el scheinbar richtige fuera:
KompilierenMarcaSeparación
class KLASSE=feld%
var objekt#=new(KLASSE)
objekt#.feld%=12345
dispose objekt#
print classof(objekt#)  ""
print sizeof(objekt#)  0
print objekt#.feld%  stürzt ab, naja, existiert immerhin nicht mehr
waitin
>
Aber hier...!? (Man beachte, dass auch hier el Neuzuweisungsproblem (s.o.) besteht, el Befehl Dim  pero probablemente no Arrays esperado...)
KompilierenMarcaSeparación
class KLASSE=feld%
declarar objekte#[0]
objekte#[0]=new(KLASSE)
objekte#[0].feld%=12345
disponer objekte#[0]
imprimir classof(objekte#[0])  siempre todavía "KLASSE"
imprimir sizeof(objekte#[0])  siempre todavía 2
imprimir objekte#[0].feld%  siempre todavía 12345
waitinput
Saludo, Sebastian
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
11.10.2008  
 




RGH
¡Hola,

einzelne Arrayelemente puede no disposed voluntad, pero sólo el komplette Array:

Disponer Objetos#[]
Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.10.2008  
 




Sebastian
Sprenger
Einzelne no? OK... Aber auch si yo todos en una vez disponer, passiert nichts:
KompilierenMarcaSeparación
class KLASSE=feld%
declare objekte#[9]

whileloop 0,9

    objekte#[&loop]=new(KLASSE)
    objekte#[&loop].feld%=122*&loop

endwhile

dispose objekte#[]

whileloop 0,9

    objekte#[&loop].feld%=objekte#[&loop].feld%+&loop
    print classof(objekte#[&loop]),
    print sizeof(objekte#[&loop]),
    print objekte#[&loop].feld%

endwhile

waitinput
Wird el Speicher porque como jemals otra vez freigegeben?
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
11.10.2008  
 




Nico
Madysa
Jetzt hast du otra vez vergessen, el Array con Dim a dimensionieren.
Prinzipiell debería lo así klappen:
KompilierenMarcaSeparación
class KLASSE=feld%
declare objekte#[9]
Dim objekte#[] , KLASSE

whileloop 0,9

    objekte#[&loop]=new(KLASSE)
    objekte#[&loop].feld%=122*&loop

endwhile

dispose objekte#[]

whileloop 0,9

    objekte#[&loop].feld%=objekte#[&loop].feld%+&loop
    print classof(objekte#[&loop]),
    print sizeof(objekte#[&loop]),
    print objekte#[&loop].feld%

endwhile

waitinput

Am besten es, si du en el selben Atemzuge, en el du Dim schreibst, auch el zugehörige Disponer ans Ende klatschst,

PS: In älteren Windows-Versionen podría lo tatsächlich passieren, dass el Speicherplatz nichtfreigegebener Bereiche auch blockiert restos. Aber de WIndows XP debería spätestens en End el letzte Zona automáticamente freigegeben voluntad.
 
Nico Madysa
13.10.2008  
 




RGH
@Nico:
Sebastian macht lo ya correcto: Beii una Objeto- oder Struktur-Array puede ser cada individual Element una Klasse o. una Struktur zuweisen, incluso cada Element una otro.

@Stefan:
Usted hast bastante. Offensichtlich wirkt auch hier DPSPOSE no zuverlässig. Yo voluntad lo me de tiempo näher ansehen ...

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.10.2008  
 




Nico
Madysa
Asche en mien Haupt, Yo tener el "New" liso übersehen...
 
Nico Madysa
13.10.2008  
 




RGH
Ok, Yo en el Mittagspause una vez más genauer nachgesehen:

1. Das zuerst genannte Problema (sin Bereisarray) betrifft sólo el NEW-Función: Sie funktioniert tatsächlich una Disponer en Objekten no. Das Disponer wurde aber korrekt durchgeführt y Speicher freigegeben. Workaround: Möglichkeit 1: Statt Disponer en diesem Fall "dim objeto#,0" benutzen. Ein Disponer es entonces no notwendig. Möglichkeit 2: El Klasse con Dim zuweisen "Dim objeto#, KLASSE".

2. Das Disposen de Bereichsarrays funktioniert tatsächlich no. Workaround: Ein Bereichsarray no mehrfach uso. Beim Programmende se el Speicher freigegeben.

Beide Bugs voluntad en el nächsten Versión Fijo.

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.10.2008  
 




RGH
... y yo poner todavía una en él:

Ab el nächsten Versión (möglicherweise 11.1) se lo auch posible ser, una einzelnes Element uno Bereichs-, Struktur- oder Objeto-Arrays a disposen:

Disponer Objetos[5]
Diesem Element kann entonces con New otra vez una Klasse oder Struktur zugewiesen voluntad.

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.10.2008  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.378 Views

Untitledvor 0 min.
Sebastian Sprenger06.06.2013
Jörg Sellmeyer04.11.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie