Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Utilizzo calloc e realloc...
Forum - C/C++ - Utilizzo calloc e realloc...

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti,

riprendo la discussione: http://www.pierotofy.it/pages/extras/forum/2/38187-problem ...
ormai fuori topic...

come posso usare calloc???
perchè non ho capito benissimo...
grazie ciao

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 14:47
Lunedì, 28/07/2008
Mostra il codice che utilizzi per allocare inizialmente la stringa ...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:07
Lunedì, 28/07/2008
è proprio quello il punto...
non so bene come usare calloc, vale a dire, ho visto il prototipo:

void *calloc(size_t num, size_t size);

ora mi chiedo:
1 come faccio ad "assegnare" la funzione alla variabile???
2 trattandosi di una variabile char, cosa devo scrivere al posto di size_t num e siza_t size ???

grazie ciao

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 17:09
Lunedì, 28/07/2008
Se vuoi usare la calloc per allocare una stringa di n caratteri, scrivi

char *stringa;

stringa = (char *)calloc(n, sizeof(char));

Cosa c'e' di difficile?

P.S. Continui a scrivere nel forum di C++ ma usi funzionalita' del C e non del C++ ... secondo me, o questo thread viene spostato in C oppure dobbiamo discutere dell'allocazione di memoria con la

new

del C++ ...

Ultima modifica effettuata da gantonio il 28/07/2008 alle 17:10
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:45
Lunedì, 28/07/2008
ciao,

ho provato e considerando le variabili:
Codice sorgente - presumibilmente C/C++

  1. int dim;
  2.   char *tlist;
  3.   char pf[MAX_PATH];
  4.   strcpy(pf, p);
  5.   strcat(pf, "\\*.*");


il seguente codice genera un errore (non di compilazione ma durante l'esecuzione del programma)
Codice sorgente - presumibilmente C/C++

  1. if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
  2.         {
  3.           printf ("[%s]\n", fd.cFileName);
  4.  
  5.           char pf[MAX_PATH];
  6.           strcpy(pf, p);
  7.           strcat(pf, "\\");
  8.           strcat(pf, fd.cFileName);
  9.  
  10.           search(pf);
  11.         }


ciao e grazie

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 23:11
Lunedì, 28/07/2008
Ma che c'entra questo codice con la calloc?

E di che errore parli?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:42
Lunedì, 28/07/2008
ciao,
scusa che sbadato, i codici sono:
variabili:
Codice sorgente - presumibilmente C/C++

  1. WIN32_FIND_DATA fd;
  2.  
  3.   int dim;
  4.   char *tlist;
  5.   char pf[MAX_PATH];
  6.   strcpy(pf, p);
  7.   strcat(pf, "\\*.*");


il codice che genera l'errore (in pratica la chiusura dell'applicazione con il messaggio Si è verificato un errore in ricerca.gantonio2.exe. L'applicazione verrà chiusa.) è questo:
Codice sorgente - presumibilmente C/C++

  1. //questo codice viene eseguito se si tratta di un file (lo scopo è inutile: era una prova)
  2.  
  3. printf ("\t%s\n", fd.cFileName);
  4.           strcpy(tlist, pf);
  5.           size_t dim = strlen(tlist);
  6.           tlist  = (char *)calloc(dim, sizeof(char));


spero di essermi spiegato,
grazie ciao

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 0:10
Martedì, 29/07/2008
Ma tu usi la strcpy PRIMA della calloc?

Cioe' ... tu invece di preparare il contenitore e versare l'acqua, prima versi l'acqua e poi prepari il contenitore?

Non hai molta dimestichezza con i puntatori ...

E poi ... scusa ... ma a cosa servirebbe tlist ?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 8:37
Martedì, 29/07/2008
ciao,

il mio scopo è semplicemente ottenere un vettore con tutta la lista dei file presenti nella directory e nelle sottodirectory. La tlist (ovvero lista temoranea) lho creata per non modificare il pf. In pratica io voglio fare così:
-copio pf in tlist
-tolto gli ultimi 3 caratteri (ovvero *.*) da tlist
-aggiungo a tlist il nome del file
-copio tlist nel vettore
ora l'unico passaggio che non so fare è quello del togliere sti 3 caratteri. Siccome iniziamo ad andare per le lunghe mi puoi fare vedere la pratica e poi se non la capisco ti faccio qualche domanda??? così in massimo 3 post abbiamo concluso... ok???
te ne sarei veramente grato...;):k:
ciao

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo