Autore Topic: allocation non freed  (Letto 995 volte)

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
allocation non freed
« il: 10 Settembre 2019, 23:28:43 »
gbx3: warning: 1 allocation(s) non freed.

Una allocazione non liberata. Cosa significa? Dove devo intervenire?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:allocation non freed
« Risposta #2 il: 10 Settembre 2019, 23:57:03 »
E' corretto quindi chiudere il più possibile uscendo da un form?
Codice: [Seleziona]
Public f As New Funzioni
....
Public Sub Form_Close()
  f = Null
End

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:allocation non freed
« Risposta #3 il: 11 Settembre 2019, 00:02:24 »
...nell'economia/gestione della memoria si impone che un'area di memoria precedentemente allocata debba essere liberata alla fine del suo uso, affinché il sistema possa utilizzarla per altri scopi.

In Gambas l'avviso  "allocation non freed" comunica che alla chiusura del programma, uno o più aree di memoria, usate ad esempio per creare Oggetti:
Codice: [Seleziona]
Public Sub Form_Open()

End

Public Sub Button1_Click()

  Quit

End

o aree di memoria allocate arbitrariamente dal programmatore con specifica funzione:
Codice: [Seleziona]
Public Sub Main()

  Dim p As Pointer
 
  p = Alloc(SizeOf(gb.Byte), 48)

End

non sono state deallocate, liberate debitamente.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:allocation non freed
« Risposta #4 il: 11 Settembre 2019, 00:09:33 »
E' corretto quindi chiudere il più possibile uscendo da un form?
Codice: [Seleziona]
Public f As New Funzioni
....
Public Sub Form_Close()
  f = Null
End
In questo caso, bisogna capire se è "Funzioni" in sé che genera quell'avviso, o qualcosa creato al suo interno.
« Ultima modifica: 11 Settembre 2019, 00:10:04 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:allocation non freed
« Risposta #5 il: 12 Settembre 2019, 10:57:07 »
Ciaro. perfetto. grazie.