Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
Lo chassis in Ceraluminium è il cuore di questo notebook in edizione 2026, un modello pensato per garantire produttività con le tipiche applicazioni di produttività personale e capace di offrire un'autonomia di funzionamento lontano dalla presa di corrente da riferimento. Potenza, facilità di trasporto e costruzione robusta tutto in un notebook compatto.
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-11-2008, 10:55   #1
Starise
Senior Member
 
L'Avatar di Starise
 
Iscritto dal: Oct 2000
Città: Napoli
Messaggi: 984
[C] Gestire puntatore ad array di puntatori.

Ciao a tutti. Allora, chiedo scusa, ma sto impazzendo con i puntatori!
Nel mio software sto gestendo una struttura di tipo puntatore ad array di puntatori a strutture che ho chiamato schede:
Codice:
typedef struct _SCHEDA
{
    int disp;                   /* marcatore */
    char Nome[LSTRING];         /* nome del contatto */
    char Cognome[LSTRING];      /* cognome del contatto */
    char Email[LSTRING];       /* email del contatto */
} SCHEDA;
La struttura è inizializzata nella main e viene così allocata dinamicamente:
Codice:
int main(int argc, char *argv[])
{
    SCHEDA **Rubrica = NULL; /* puntatore ad array di puntatori */
    int Elem = 0;
} /*endmain*/

int AllocaScheda
(   SCHEDA ***Rubrica, /* puntantore al puntatore dell'array di puntatori */
    int *elem /* numero di elementi presenti in rubrica */
)
{
    SCHEDA **Nuova;
    /* allocazione della memoria */
    Nuova = ( SCHEDA ** )realloc( *Rubrica, ( *elem+1 ) * sizeof( SCHEDA* ) );
    if( Nuova != NULL )
    {
        Nuova[*elem] = ( SCHEDA * )malloc( sizeof( SCHEDA ) );
        if( Nuova[*elem] != NULL )
        {
            *Rubrica = Nuova;
            Nuova[*elem]->disp = 0; // marca la scheda come disponibile
            (*elem)++; /* nuovo elemento aggiunto */
            return 1; /* allocazione avvenuta correttamente */
        }
    }
    else
    {
        return 0; /* errore di allocazione */
    }
}
Ora devo riempire la struttura utilizzando un file di testo:
Codice:
int CaricaFileCsv
(   SCHEDA **Rubrica,
    int *elem
)
{
    FILE *NuovoFile; /* file della rubrica */
    char NomeFile[256]; /* contiene il nome del file */
    int i; /* indice */

    NuovoFile = fopen( "rubrica.csv", "r" ); /* apertura file predefinito */

    if( NuovoFile == NULL ) /* il file non è stato aperto */
    {
        printf(" Inserire il nome di un file da caricare\n\n > ");
        LeggiScelta( &NomeFile );
        NuovoFile = fopen( NomeFile, "r" );
        if( NuovoFile == NULL ) return 0; /* errore apertura */
    }

    while( !feof( NuovoFile ) )
    {
        Alloca(&Rubrica,elem);
        fscanf( NuovoFile, "%s", Rubrica[*elem]->Nome );
        fscanf( NuovoFile, " %s", Rubrica[*elem]->Cognome );
        fscanf( NuovoFile, " %s", Rubrica[*elem]->Email );
    }
    fclose( NuovoFile ); /* chiusura del file */
    return 1;
}
Il programma impazzisce e va in crash!
__________________
Workstation: CPU AMD Ryzen 5900X @ 4950 MHz | RAM Corsair DDR4 64GB @ 3.6GHz | MoBo Gigabyte B550 AORUS Pro V2 | NVMe 1TB ~ WD Black SN850 | Storage 20 TB ~ HGST 7200RPM | PSU Fractal Ion+ 2 860W | GPU Radeon RX 9070 XT + RTX 4070 Super | Mouse Logitech G Pro | Tastiera Logitech G915 TKL -- Audio/Video: AVR Denon X1300W 4K | Interfaccia audio Steinberg UR22 MKII | Casse 2x Klipsch RP-160M | Cuffie Sennheiser HD 650 | B&W Px7 S3 | Mic Oktava MK 012 Black | Display LG OLED 48" @ 2160p 120Hz

Ultima modifica di Starise : 21-11-2008 alle 10:57.
Starise è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2008, 15:48   #2
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Ciao,

il file com'è strutturato? I campi come sono separati? (punto e virgola? Tab?).
Io leggerei prima il numero di record presenti nel file e, quindi, allocherei con malloc anziché con realloc.
Puoi linkare un file di esempio?
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Speciale fai da te: le migliori offerte ...
Nuovo leak di GTA 6: gare, tuning e Jaso...
Apple Watch SE 3 con cassa da 44 mm a 24...
Ecco i 3 migliori TV in offerta: Xiaomi ...
Vitalik Buterin (Ethereum): l'IA potrebb...
Recensione HUAWEI WATCH D3, il migliore ...
Robot ECOVACS da 249 a 399 €: differenze...
GlobalFoundries produrrà negli US...
Apple prepara un evento per marted&igrav...
Musk, Huang e Lisa Su alla Casa Bianca: ...
iPhone Air 2 sarà ancora pi&ugrav...
Data center in stallo: San Francisco blo...
Brevetti violati, Apple dovrà ris...
Atari riporta in vita l'800XL: cos&igrav...
ArtCraft, la suite open source che punta...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v