Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563

    C - Allocare dinamicamente un array

    Per l'allocazione dinamica in C si fa cosi
    codice:
    int *a = malloc( sizeof(int))
    ma se volessi allocare un array?
    codice:
    int *a[] = malloc( 5 * sizeof(int))
    restituisce un array di 5 elementi?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #2
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    uhm no semplicemente:

    int *a = malloc( 5 * sizef(int) );
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  3. #3
    Originariamente inviato da Poker1
    uhm no semplicemente:

    int *a = malloc( 5 * sizef(int) );
    Manca il cast a int*..malloc restituisce un puntatore a void

    codice:
    int *a = (int*)malloc( 5 * sizef(int) );
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    il gcc nn mi dice niente

    cmq io di solito uso la calloc e' un po' piu comodo, invece di fare la moltiplicazione, gli dai il numero e la dim di ogni elemento
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  5. #5
    Originariamente inviato da Poker1
    il gcc nn mi dice niente

    cmq io di solito uso la calloc e' un po' piu comodo, invece di fare la moltiplicazione, gli dai il numero e la dim di ogni elemento
    Strano è proprio un errore. A me mingw (porting di gcc sotto win) dice

    error: invalid conversion from `void*' to `int*'
    Calloc inizializza anche a zero le celle di memoria allocate è questa la differenza con malloc. Per la comodità a me non cambia nulla visto che per entrambe devi inserire un carattere tra il numero di celle ed in sizeof(...) ,per una un '*' e per l'altra ','
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    ho provato con dev c++ e da errore se nn si fa il cast
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  7. #7
    Originariamente inviato da Poker1
    ho provato con dev c++ e da errore se nn si fa il cast
    Certo perchè dev c++ usa mingw come compiler. Comunque è giusto che ti dia errore perchè lo è! Anche se un compilatore non te lo dice è meglio che lo faccia sempre il cast perchè assicuri al tuo prog maggiore portabilità.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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.