Oppure

Loading
11/10/11 15:14
Andrea10
Salve,

sto realizzando un programma che apre un file .jpg, tramite l' fopen e copia in una stringa il contenuto.
Ho trovato la path della mia immagine che si trova nella stessa cartella dell'eseguibile, e faccio l' fopen del file .jpg in sola lettura.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *path, *ptr=NULL, barra[1];
int s,i;
FILE *fp;

main(){     
            
path=getcwd(ptr,s); //Ottengo la path del programma
barra[0]=path[2]; //copio la barra in una variabile
strcat(path,barra); //aggiungo la barra alla path
strcat(path,"Immagine.jpg"); //aggiungo il nome dell'immagine jpg

fp=fopen(path,"rb"); //Apertura in lettura, Ma da ERRORE.
/*....
......
......*/

fclose (fp);
}

Il programma si avvia e poi durante la fase di apertura del file la console da l'errore:
*Il programma ha smesso di funzionare.*

Qualcuno mi può aiutare?
Sto lavorando con win7 e utilizzo Dev-C++ .

Grazie Mille in anticipo
Ultima modifica effettuata da Andrea10 11/10/11 15:50
aaa
11/10/11 15:17
Alex
se non posti il codice come facciamo ad aiutarti?:_doubt::_doubt::_doubt:
aaa
11/10/11 15:25
Andrea10
Ecco il codice, scusa ero di fretta e l'ho dimenticato! :)
aaa
11/10/11 15:49
E' come dire al meccanico mi aggiusti l'auto e dimenticare di dargli l'auto dicendo che si andava di fretta ... :-)

Comunque, il problema è che usi il puntatore

char *path;

senza avere allocato la memoria per contenere la stringa e usi getcwd passando un parametro (s) senza valorizzarlo ...

Ripassa il funzionamento della getcwd e come si usa ...
11/10/11 16:11
Andrea10
Quella parte di codice l'ho presa da un sito,
ho provato a fare una printf della path e la stampa corretta.
aaa
11/10/11 17:33
Postato originariamente da Andrea10:

Quella parte di codice l'ho presa da un sito,
ho provato a fare una printf della path e la stampa corretta.


Quindi vuoi dire che ti ho detto una sciocchezza?
11/10/11 19:45
Andrea10
No..volevo dire che non ho capito quale sia l'errore.
aaa
11/10/11 19:55
Ti ho già detto ...

Guarda meglio come funziona la getcwd perché

usi ptr che non è allocato

usi s senza dare un valore

Ma tu hai detto che hai trovato il codice in un sito e dato che funziona è giusto ...