Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c]puntatori a struct

  1. #1
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354

    [c]puntatori a struct

    codice:
    struct materia{
      int *punt;
      int i;
    };
    adesso devo tramite puntatori gestirlo dinamicamente:
    codice:
    struct materia *libretto=malloc(sizeof(int)*2);
    ma non va, qualcuno sa dirmi perché?

  2. #2
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    struct materia{
    int *punt;
    int i;
    };

    typedef materia* Materia;

    Materia *libretto;
    libretto= (Materia*) malloc(sizeof(materia));
    Debian Sarge 3.01a
    Slackware 10.2

  3. #3
    Utente di HTML.it L'avatar di ibykos
    Registrato dal
    Feb 2005
    Messaggi
    201
    Cosa non va:

    1) La funzione malloc restituisce un puntatore ad oggetto generico (void *) che deve adattato con un casting, come suggerisce Fabiuz, in questo modo

    codice:
        mia_struct * dato = (mia_struct *) malloc (sizeof mia_struct);
    2) Tu assegni con quella malloc lo spazio necessario per due interi: per prima cosa, non è detto che la dimensione di una struttura sia la somma delle dimensioni dei elementi, inoltre, nella struttura hai dichiarato un puntatore ad intero ed un intero, per cui lo spazio assegnato non coinciderà sicuramente.

    Saluti


  4. #4
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    Credo di evere capito, grazie!


    Unit1

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.