Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25

    [c] standard c99 vc++ 2008

    Ciao a tutti,
    stò leggendo un libro di programmazione C dove alla fine di ogni capitolo svolgo alcuni esercizi di programmazione.
    In questo momento sono arrivato al capitolo che parla degli ARRAY uni e multidimensionali,la maggior parte degli esercizi è incentrato sui multi ma con vc++ ho molti problemi:

    _mi dà errore per esempio se scrivo:
    sum += esempio[i] per rimediare ho trovato sul web questa soluzione sum += *esempio[i],ma il libro per il momento non ne parla.

    _non riesco ad usare gli array multidimensionali,sempre sul web ho trovato qualcosa che parla del non supporto dello standard c99 da parte di vc++,esiste rimedio per questo?per esempio un esercizio mi dice di disegnare una scacchiera dove far muovere l'alfabeto in orizzontale e in verticale,esempio
    abc---
    --de--
    --gf--
    è possibile farlo senza usare gli array multi?

    grazie.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c] standard c99 vc++ 2008

    Originariamente inviato da cles
    sempre sul web ho trovato qualcosa che parla del non supporto dello standard c99 da parte di vc++,esiste rimedio per questo?
    No, VC++ non supporta il C99 (e questo è bene IMHO).
    Array multidimensionali variabili si possono fare solo con allocazione dinamica.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25

    Re: Re: [c] standard c99 vc++ 2008

    Originariamente inviato da shodan
    No, VC++ non supporta il C99 (e questo è bene IMHO).
    Array multidimensionali variabili si possono fare solo con allocazione dinamica.
    Scusa,stò iniziando ad imparare ora
    mi potresti spiegare cosa vuol dire allocazione dinamica e perchè è un bene che non supporta il C99?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: Re: Re: [c] standard c99 vc++ 2008

    Originariamente inviato da cles
    Scusa,stò iniziando ad imparare ora
    mi potresti spiegare cosa vuol dire allocazione dinamica e perchè è un bene che non supporta il C99?
    Se stai imparando, ti consiglio un bel libro dove è sicuramente spiegata l'allocazione dinamica, dopo i puntatori e altre nozioni necessarie e propedeutiche.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25
    E' quello che stò facendo
    ma vorrei capire bene prima di passare al prossimo capitolo ,altrimenti faccio troppa confusione.

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    L'allocazione dinamica si usa quando c'è la necessita di creare qualcosa a runtime.
    Ad esempio stai usando un array troppo piccolo e te ne serve uno più grande. Ne allochi uno, ricopi il vecchio e usi solo quello nuovo. Con l'allocazione fai richiesta al sistema operativo di una zona di memoria, dichiarando che ne sei responsabile. Quando non ti serve più la liberi.

    In C si usanomalloc(), realloc() e free() per gestire le allocazioni.
    In C++ new e delete.

    Per quanto riguarda il C99.
    Il C99 è la ratifica ufficiale di una serie di estensioni introdotte da GCC che miravano a svecchiare il C. A parte Gcc non so quanti altri compilatori lo supporti. Introduce i VLA (variable lenght array) che spesso danno più problemi di quanti ne risolvano e soprattutto stravolge le abitudini di molti programmatori C, i quali continuano a usare il buon vecchio C89.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #7
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25
    Originariamente inviato da shodan
    L'allocazione dinamica si usa quando c'è la necessita di creare qualcosa a runtime.
    Ad esempio stai usando un array troppo piccolo e te ne serve uno più grande. Ne allochi uno, ricopi il vecchio e usi solo quello nuovo. Con l'allocazione fai richiesta al sistema operativo di una zona di memoria, dichiarando che ne sei responsabile. Quando non ti serve più la liberi.

    In C si usanomalloc(), realloc() e free() per gestire le allocazioni.
    In C++ new e delete.

    Per quanto riguarda il C99.
    Il C99 è la ratifica ufficiale di una serie di estensioni introdotte da GCC che miravano a svecchiare il C. A parte Gcc non so quanti altri compilatori lo supporti. Introduce i VLA (variable lenght array) che spesso danno più problemi di quanti ne risolvano e soprattutto stravolge le abitudini di molti programmatori C, i quali continuano a usare il buon vecchio C89.
    Grazie delle risposte,
    per quello che riguarda il C99 ho capito,per l'allocazione dinamica aspetterò di arrivarci con il libro per capire bene.
    Vorrei però capire come sia possibile svolgere l'esercizio del primo post senza array multi,come si può muoversi in orizzontale e verticale senza questi?

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Ma esattamente che problemi hai con gli array multi (che poi sarebbero matrici)?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da cles
    per l'allocazione dinamica aspetterò di arrivarci con il libro per capire bene.
    Che era quello che ti avevo detto ...

    Vorrei però capire come sia possibile svolgere l'esercizio del primo post senza array multi,come si può muoversi in orizzontale e verticale senza questi?
    Il problema non è chiaro ... mostra del codice su cui stai lavorando per capire meglio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25
    Scusate,per quello che riguarda gli array multi continuavo a sbagliare io e pensavo che non si potessero utilizzare con il C89!!erroraccio,praticamente utilizzavo la stessa variabile nei due cicli for!

    Sono appena all'ottavo capitolo ma ho già molta confusione e non tutto mi è chiaro,sarà questo il motivo dell'errore

    Grazie,
    ...al prossimo errore

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.