Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - array dinamici
Forum - C/C++ - array dinamici

Avatar
genni_96 (Normal User)
Pro


Messaggi: 108
Iscritto: 04/06/2010

Segnala al moderatore
Postato alle 15:00
Giovedì, 30/09/2010
Codice sorgente - presumibilmente C++

  1. void LeggiFile(char* file[]);
  2. void ScriviFile(char* file[]);
  3.  
  4. char* array;
  5.  
  6. int main()
  7. {
  8. ScriviFile("1.txt");
  9. LeggiFile("1.txt");
  10. ScriviFile("2.txt");
  11. LeggiFile("2.txt");
  12. ScriviFile("3.txt");
  13. LeggiFile("3.txt");
  14. ScriviFile("4.txt");
  15. LeggiFile("4.txt");
  16. //eccetera
  17. }
  18.  
  19. void LeggiFile(char* file[])
  20. {
  21. array= new char[100];
  22.  
  23. //lettura file......
  24.  
  25. delete[] array;
  26. }
  27.  
  28.  
  29. void ScriviFile(char* file[])
  30. {
  31. array= new char[100];
  32.  
  33. //scrittura file......
  34.  
  35. delete[] array;
  36. }




Il problema è che funziona solo la prima volta, quindi scrive solo il primo file, poi credo che il problema sia riusare new dopo aver usato delete[], ma non ne sono sicuro e non so come risolverlo.
Grazie in anticipo per l'aiuto

Ultima modifica effettuata da genni_96 il 30/09/2010 alle 15:02
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:15
Giovedì, 30/09/2010
Posta TUTTO il codice, non solo un pezzetto.


Il mio blog: https://piero.dev
PM Quote
Avatar
genni_96 (Normal User)
Pro


Messaggi: 108
Iscritto: 04/06/2010

Segnala al moderatore
Postato alle 16:24
Giovedì, 30/09/2010
Codice sorgente - presumibilmente C++

  1. void ScriviFile(char* file[])
  2. {
  3. array= new char[GetWindowTextLength(e_hwnd)+1];
  4. GetWindowText(e_hwnd,array,GetWindowTextLength(e_hwnd));
  5.    
  6. f.open(file,ios::out);
  7. f<<array;
  8. f.close();
  9.  
  10. delete[] array;
  11. }
  12.  
  13. voidLeggiFile(char* file[])
  14. {
  15. struct stat info;
  16. stat(file,&info);
  17. array = new char[info.st_size/sizeof(char)+1];
  18.        
  19. f.open(file,ios::in);
  20. f.read(array,info.st_size/sizeof(char));
  21. f.close();
  22.  
  23. SetWindowText(e_hwnd,array);
  24.    
  25. delete[] array;
  26. }



e_hwnd è l'handle di una finestra di tipo EDIT

Ultima modifica effettuata da genni_96 il 30/09/2010 alle 16:25
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:06
Lunedì, 04/10/2010
mmm..scusa ma se stai programmando C++, perchè usare i puntatori a char per le stringhe e non usare la classe std::string, cosi non devi stare ad allocare sempre la memoria?

PM Quote