Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263

    qualche dubbio riguardo a malloc

    non è molto che mi sono messo a imparare il C e proprio ora mi scontro con un grattacapo non indifferente riguardo per l'appunto a malloc...

    il mio probelma è questo:

    se io prima dell'inizio di main scrivo

    codice:
    char *ptr = (char *) malloc( sizeof( char ) * 256 );
    gcc mi dice che dal canto suo posso anche andare a remengo e mi restituisce il seguente errore alla linea di cui sopra:

    codice:
    main.c:4: initializer element is not costant
    se invece la stessa dichiarazione la scrivo dentro a main non mi da nessun errore e il programmello gira come dovrebbe girare... a questo punto della faccenda il mio dubbio è... che differenza c'è tra scrivere la dichiarazione dentro o fuori da main?!?... ho provato a trovare una risposta dentro di me... ma ho ottenuto solo un forte mal di testa e un terrbile bruciore agli occhi... qualcuno sarebbe così gentile da illuminarmi?!?

  2. #2

    Re------->malloc()

    Mhhh..
    main.c:4: initializer element is not costant

    ovvero:l'inizializzazione di quel elemento nn è 1 costante
    In C tutti gli elementi devono essere inizializzati da 1
    valore costante
    1)char c='q';
    2)int num=3;
    3)char* p=xff34;
    Tu lo inizializzi con 1 chiamata a malloc(),che restitisce
    1 puntatore che è Variabile,quindi sbagli eh eh..
    Spiegazione nn brillante lo so,ma spiegare la differenza
    tra 1 puntatore costante e variabile è lunga
    (SonoPigroPerIndole)

  3. #3
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    grazie per la risposta... credo di aver capito più o meno la faccenda... però il mio dubbio rimane ancora... perchè se scrivo la stessa istruzione fuori da main genera un errore e ese invece è dentro a main funziona?!?

  4. #4
    Fuori del Main nn puoi chiamare funzioni qualunque esse siano
    ne malloc(),ne printf() etc,xkè il SistemaOperativo legge ed
    esegue a partire da main()fino alla fine di main(),cioè
    l'entry-point del programma è main(),quello che sta prima di main() sono solo informazioni aggiuntive elaborate dal
    Preprocessore..
    Nn usare chiamate a funzione fuori del main()!!!
    Ciao

  5. #5
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    cacchio... molto più semplice di quello che pensassi

    grazie mille per le risposte

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 © 2024 vBulletin Solutions, Inc. All rights reserved.