Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c/c++ OT] Allocazione dinamica memoria

    Ciao! volevo sapere che differenza c'è tra queste tre istruzioni
    codice:
    double *var;


    codice:
    var=(double*)malloc((N)*sizeof(double));
    codice:
    var=(double*)calloc(N,sizeof(double));
    codice:
    var=double*N

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Se leggi la documentazione di malloc() e calloc() dovrebbe esserti tutto chiaro... le prime due istruzioni fanno esattamente la stessa cosa, allocano spazio per N elementi di tipo double (la calloc() in particolare inizializza tali elementi a 0).

    L'ultima istruzione non ha molto senso. Fermo restando che forse volevi scrivere

    codice:
    var = (double*) N
    stai assegnando a var il valore di N castato a puntatore a double. Ora se N è un intero (come si deduce dalle istruzioni precedenti) stai convertendo quel valore a un indirizzo di memoria, il che non ha molto senso perché non è detto che quel valore corrisponda ad un indirizzo valido. Se poi l'intenzione era, per qualche oscuro motivo, quella di allocare spazio per N elementi di tipo double, allora è completamente sbagliato.
    every day above ground is a good one

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