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++ - malloc in vista
Forum - C/C++ - malloc in vista

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 22:16
Domenica, 29/11/2009
Salve a tutti.
Recentemente ho scritto un programma che girava correttamente su XP. Ne sono certo poichè l'ho provato su altri 2-3 pc DIVERSI dal mio.
Spostando il programma su vista però, subito dopo l'avvio della applicazione, il programma mi crashava.

Dopo vari tentativi di debug, mal riusciti, e ricerche su internet, sono riuscito a capire che il problema risiede nell'allocaggio della memoria con il comando malloc.

Ora vi chiedo, è possibile che sia dovuto a malloc? Se è dovuto a questo, esiste un modo per fixare questo errore, anche con un altro comando di allocazione?

Grazie anticipatamente,
Stefano

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 22:19
Domenica, 29/11/2009
guarda che se stai programmando in C++ e non in C la malloc NON si deve usare MAI.
Si usa invece la
Codice sorgente - presumibilmente C/C++

  1. new



e al posto della free la
Codice sorgente - presumibilmente Plain Text

  1. delete


PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 22:20
Domenica, 29/11/2009
Utilizzando new quindi si sostituisce malloc?
Come faccio a definire che quella variabile deve occupare (ad esempio) 1000 byte?

PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 22:33
Domenica, 29/11/2009
Testo quotato

Postato originariamente da Stefano:

Salve a tutti.
Recentemente ho scritto un programma che girava correttamente su XP. Ne sono certo poichè l'ho provato su altri 2-3 pc DIVERSI dal mio.
Spostando il programma su vista però, subito dopo l'avvio della applicazione, il programma mi crashava.

Dopo vari tentativi di debug, mal riusciti, e ricerche su internet, sono riuscito a capire che il problema risiede nell'allocaggio della memoria con il comando malloc.

Ora vi chiedo, è possibile che sia dovuto a malloc? Se è dovuto a questo, esiste un modo per fixare questo errore, anche con un altro comando di allocazione?

Grazie anticipatamente,
Stefano


Posta il codice perchè se no sarà difficle capire qual'è la causa dell'errore.

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 22:39
Domenica, 29/11/2009
se cerchi su google informazioni trovi millemila pagine di roba, comunque se metti:

Codice sorgente - presumibilmente C/C++

  1. int *v = new int[200];



istanzi un array di 200

Ultima modifica effettuata da lorenzo il 29/11/2009 alle 22:40
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:50
Lunedì, 30/11/2009
Testo quotato

Postato originariamente da lorenzo:

se cerchi su google informazioni trovi millemila pagine di roba, comunque se metti:

Codice sorgente - presumibilmente C/C++

  1. int *v = new int[200];



istanzi un array di 200



200 cosa? patate? byte?

asd, cmq il problema che ha stefano si può risolvere semplicemente installando le redistributable del visual c++ 2008 su vista.

http://www.microsoft.com/downloads/details.aspx?familyid=A ...

N.B ovviamente queste redist sono per vc2008, se usi vs2005 devi scaricare le redist del vc2008 :)

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 15:53
Lunedì, 30/11/2009
Le redist, sono già installate su vista (del 2005 nel mio caso) Comunque provo l'inizializzazione del tipo char * prova = new char[200];
In questo caso inizializzera 200 char (quindi 200 byte) giusto?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:00
Lunedì, 30/11/2009
Testo quotato

Postato originariamente da Stefano:

Le redist, sono già installate su vista (del 2005 nel mio caso) Comunque provo l'inizializzazione del tipo char * prova = new char[200];
In questo caso inizializzera 200 char (quindi 200 byte) giusto?



sicuramente vanno aggiornate all'sp1

http://www.microsoft.com/Downloads/details.aspx?familyid=2 ...

al limite installa sul pc dove crasha il programma vs2005, se sei alla canna del gas...

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 16:25
Lunedì, 30/11/2009
Testo quotato

Postato originariamente da HeDo:



200 cosa? patate? byte?



spero fosse una battuta....se non lo era ne sono molto deluso

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo