I Puntatori, Problema

« Older   Newer »
  Share  
Sora3000
CAT_IMG Posted on 19/11/2011, 12:37     +1   -1




Ciao a Tutti, allora e da un pò ormai che continuo a leggere guide sul C
alcune cose le ho capite e altre no infatti ho un problrma con i puntatori *
e stringhe ecco il sorgente:
CODICE
#include<stdio.h>

void Load_File();
int main(void)
{
Load_File();
}

int Load_File()
{
   FILE *fileh;
   char *filedir;
   printf("Digita il Percorso del file oppure il suo nome!\nC:\\");
   scanf("%­s!",filedir);
   printf("\nVariabile = %­s!",*filedir);


}


Ebbene il mio problema è che quando tento di visualizzare il puntatore *filedir crasha. All'interno del puntatore da quanto ho capito posso piazziagli le stringhe dato che il C di Stringhe non ne vuole sapere
Oppure conoscete una soluzione migliore ;) Grazie a Tutti!!
 
Top
I.Ren
CAT_IMG Posted on 19/11/2011, 12:50     +1   -1




una stringa non è altro che un array di char. Non puoi fare uno scanf diretto su un puntatore ad un char, perchè viene inizializzato di default a 0 elementi. Devi usare per forza un array con un tot di elementi scelti da te o così:

CODICE
char stringa[100]

e poi scanf:
CODICE
scanf("%100s",&stringa


oppure se proprio vuoi usare un puntatore a char usi malloc per inizializzarlo ma è esattamente la stessa cosa.
 
Top
Sora3000
CAT_IMG Posted on 19/11/2011, 13:08     +1   -1




Grazie Mille I.Ren Sei un mito Testato e funziona perfettamente (La storietta li del malloc realloc e free non lo ancora capita ma spero di impararla)
 
Top
I.Ren
CAT_IMG Posted on 19/11/2011, 13:49     +1   -1




prego
 
Top
CAT_IMG Posted on 30/11/2011, 18:19     +1   -1

wtf?

Group:
Member
Posts:
2,141
Reputazione:
0
Location:
/etc/

Status:


Comunque non è che vieni inizializzato a 0 elementi, prende di default un indirizzo in memoria non accessibile dal programma e quindi segmenta...

E quando usi scanf puoi anche omettere la '&' se usi un array statico/dinamico dato che è già di per se u npuntatore ;)
 
Web   Top
4 replies since 19/11/2011, 12:37   129 views
  Share