Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-01-2006, 21:50   #1
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
[C] Errore casuale, non esce sempre (urgente)

raga il compilatore Dev-C++ qualche volta mi fa uscire un errore e non so perchè....vi posto il codice ed il tipo di errore:
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Inclusioni Gestione Struttura Dati
#include "struttura.h"


// Riempie la lista delle proprietà di ogni nodo
void RiempiListaProprieta(ListaProprieta *list, char *proprieta)
{
  int loop;
  char *array[50];
       
    // si posiziona sull'inizio delle proprietà
    proprieta=strchr(proprieta, '|')+1;

    array[0]=strtok(proprieta,"|");
    if(array[0]==NULL)
    {
        exit(0);
    }

    for(loop=1;loop<50;loop++)
    {
        // isolo la proprieta e la memorizzo in ARRAY[LOOP]
        array[loop]=strtok(NULL,"|");
        if(array[loop]==NULL)
            break;
        printf("Proprieta %d: %s\n",loop,array[loop]);
        // inserisco il valore della varie proprietà
        PushLista(list, array[loop]);                
    }
    printf("\n");
}


// Genera l'Albero della Tassonomia
AlberoTassonomia *GeneraAlbero(AlberoTassonomia *tree, char *dati, int figli, FILE *stream)
{
    int temp;   // serve a memorizzare il numero di figli di un nodo
    
    if (tree==NULL)
    {
        // creo nodo radice
        AlberoTassonomia *tree=(AlberoTassonomia *)malloc(sizeof(AlberoTassonomia));
        // inserisco dati nodo
        tree->categoria=separa(dati,0);
        //tree->categoria=strtok(dati,"|");
        printf("Inserisco Nodo: %s\n", tree->categoria);
        printf("Numero figli: %d\n", figli);

        // genera lista proprieta
        RiempiListaProprieta(tree->proprieta,dati);

        if (figli>0) //in realtà è  IF (FIGLI>NULL)
        {
            // Aggiungo il primo figlio
            AlberoTassonomia *nuovo=(AlberoTassonomia *)malloc(sizeof(AlberoTassonomia));
            nuovo=NULL;
            // Decremento il numero di figli rimanenti per questo nodo
            figli=figli-1;
            // Leggo le relative informazioni dal file
            dati=freadline(stream);
            // Richiamo la procedura collegando il figlio
            temp=dati[strcspn(dati,"|")+1]-48;
            tree->figlio=GeneraAlbero(nuovo, dati, temp, stream);
        } else {
            // Aggiungo il primo fratello
            if (dati=freadline(stream))
            {
                AlberoTassonomia *nuovo=(AlberoTassonomia *)malloc(sizeof(AlberoTassonomia));
                nuovo=NULL;
        
                temp=dati[strcspn(dati,"|")+1]-48;
                tree->fratelli=GeneraAlbero(nuovo, dati, temp, stream);
            }
        }            
    }
}


// Pulisce lo schermo
void clrscr()
{
	system("cls");
}


// Main del progetto
int main()
{    
    char *dest;
    int numeroletti, figliradice, scelta;
    FILE *file;
    AlberoTassonomia *albero=NULL;
    

  /*
    DEFINIZIONE MENU:
                1) intestazione: Gestione Tassonomia
                2) menu 1: Caricare tassonomia da file input
                3) menu 2: Salvare tassonomia su file input
  */
		clrscr();
        printf("\t\t\tGestione Albero Tassonomia\n\n");
		printf("\n1 - Inversione di una lista");
		printf("\n2 - Uscita");
		printf("\n\nInserire scelta: ");
		scanf("%d",&scelta);

		switch(scelta)
		{
			case 1: 
            {
               /*
                COME PROCEDERE:
                        1) Scrivere il menu
                        2) Leggere riga
                        3) Generare albero
               */
                clrscr();	
                file=fopen("infile.txt","r");
                if (file==NULL)
                    printf("Errore duranre l'apertura del file!");
                else
                {
                    // Legge il primo rigo del file
                    if(dest=freadline(file))
                    {                    
                        figliradice=dest[strcspn(dest,"|")+1]-48;
                        
                        albero=GeneraAlbero(albero, dest, figliradice, file);            
                    }
                }
            } 
            break; // fine CASE 1
			default:	
				break;
        } // fine SWITCH
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}
l'errore viene chiamato su queste righe (che sfruttano tutte la stessa funzione):
Codice:
1) dest=freadline(file)
2) dati=freadline(stream)
questo è il tipo di errore:
Quote:
C:\Documents and Settings\LeaderGL\Desktop\Progetto 1 LASD - Gruppo 18\main.c [Warning] assignment makes pointer from integer without a cast


questo è il codice della funzione in esame:
Codice:
// Legge sempre un rigo intero dal file e ritorna il rigo letto
char *freadline (FILE *f)
{
    char *row = NULL, *row_t = NULL;
    int ch, rowlen = 0, buflen = 0;
    int READLINE_EXTEND=128;

    while ((ch = fgetc (f)) != EOF)
    {
        if (rowlen >= buflen)
        {
            buflen = rowlen+READLINE_EXTEND;
            row_t = (char *) realloc (row, buflen);
            
            if (row_t == NULL)
                break;
        }
            
        row = row_t;

        if (ch != '\n')
            row[rowlen++] = (char) ch;
        else
            break;
    }

    if (row_t != NULL)
    {
        row[rowlen] = '\0';
    }
    else
    {
        free (row);
        row = NULL;
    }

    return row;
}

perchè quest'errore esce solo ogni tanto?
come lo risolvo? che sto sbagliando?
sicuro qualcosa coi puntatori...........

help me............
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2006, 09:05   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da leadergl
l'errore viene chiamato su queste righe (che sfruttano tutte la stessa funzione):
Codice:
1) dest=freadline(file)
2) dati=freadline(stream)
questo è il tipo di errore:
C:\Documents and Settings\LeaderGL\Desktop\Progetto 1 LASD - Gruppo 18\main.c [Warning] assignment makes pointer from integer without a cast
Dove hai dichiarato la freadline???? Se nel momento in cui il compilatore trova una chiamata a freadline e non conosce ancora il suo prototipo, può avvenire il warning indicato sopra. Se una funzione non è dichiarata, il compilatore "pensa" che ritorni, per default, un int. Da qui il warning perché dest e dati sono char*.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2006, 13:34   #3
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
sei un genio, grazie mille
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
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: 07:03.


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