Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di felpone
    Registrato dal
    Jun 2010
    Messaggi
    182

    [c]errore a run-time di semplice strcpy

    Non capisco cosa c sia d sbagliato

    codice:
    int main(){ 
    char *x; 
    strcpy(x,"c"); 
    printf("%s",x); 
    }

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    ciao , x è un puntatore , dovresti allocare spazio in memoria con la malloc()

    cosi non sai neanche a cosa punta x
    Tecnologia

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Non capisco cosa c sia d sbagliato

    codice:
    int main(){ 
    char *x; 
    strcpy(x,"c"); 
    printf("%s",x);
    }
    Come ti ha fatto notare torn24,x è un puntatore a carattere ed ha bisogno di un'allocazione di spazio.
    Puoi farlo in due modi:
    -Attraverso la malloc
    -Attraverso la calloc

    Personalmente preferisco farlo attraverso la calloc perchè questa funzione iniializza a 0 l'area di memoria.

  4. #4
    Qui la calloc non dà alcun vantaggio rispetto a malloc, dato che comunque l'area di memoria viene sovrascritta dai dati copiati dalla strcpy.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Qui la calloc non dà alcun vantaggio rispetto a malloc, dato che comunque l'area di memoria viene sovrascritta dai dati copiati dalla strcpy.
    Sì,in questo caso non cambia niente.Ma io come linea generale utilizzo la calloc dato che le due funzioni sono equivalenti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.