Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-04-2006, 20:04   #1
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
[C] errore di segmentazione

raga ho un problema strano: ho fatto in laboratorio di info un programma che funzionava perfettamente, ma appena tornato a casa lo stesso identico codice non ne ha più voluto saperne di funzionare.. mi da sempre "errore di segmentazione". da cosa può essere causato?
l'unica cosa che mi viene in mente è che in laboratorio i pc hanno installato win2000, mentre sul mio pc (ho provato anche su quello di un mio amico ma è lo stesso) ho win xp.. può essere causato dal differente os? avreste una idea su come poter risolvere il problema??
il programma (la parte che genera l'errore e che vi ho incollato qui sotto) apre un file di testo, e, allocando dinamicamente la memoria (la lunghezza del vettore di strutture), salva i valori letti su un vettore di strutture..
o almeno così faceva..

Codice:
int main (){
int i;
char stringa[100];
struct censura {
       char sba [100];
       char giu [100];
       };
FILE *fpo;
FILE *fpc;
struct censura *ip;

        
             if((fpc=fopen("correzione.txt","r"))==NULL){
                  printf("Errore letture file correzione.\n");                           
                                             }    
             else{
                  while(!feof(fpc)){
                  ip=(struct censura *) realloc(ip ,sizeof (struct censura)*(i+1));     
                  
                  /*QUA DA ERRORE DI SEGMENTAZIONE*/
                               
                  fscanf(fpc,"%s %s",ip[i].sba,ip[i].giu);
                  printf("%s %s\n",ip[i].sba,ip[i].giu);
                  i++;
                                    }
                  }                          
             fclose(fpc);
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 06-04-2006, 08:18   #2
GioVesas
Member
 
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
Ma il file esiste e le trova?
Altrimenti la close di un file pointer NULL può causare segmentation fault.
Prova a mettere la fclose dentro l'else.
__________________
Gianni
GioVesas è offline   Rispondi citando il messaggio o parte di esso
Old 06-04-2006, 08:27   #3
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ciao,
nel codice non vedo l'inizializzazione della variabile i, che usi per allocare memoria. Non so se nel resto del programma fai questa inizializzazione.
Se non la fai, il contenuto della variabile e' indefinito. In laboratorio andava bene perche' il valore (casuale) contenuto di permetteva di non far fallire la realloc().

Controlla sempre l'esito delle malloc(), realloc() e cosi' via: se vanno a buon fine ti tornano un indirizzo valido, altrimenti NULL. E' probabile che, a causa di questo, ti venga ritornato NULL. I controlli di queste cose sono fondamentali.

High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 00:48   #4
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
i file esistono e li trova..
ho risolto il poblema: non inizializzavo ip ed i
grazie a tutti per i consigli!!
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Narwal celebra 10 anni: l'evoluzione tec...
TIM Enterprise acquisisce il 70% di VoiS...
Altro che dicembre, la RTX 5080 da 24 GB...
Quale futuro per Mass Effect? Tutte le i...
Schermi rotti su iPhone Duo: un report s...
Lo stealer VOLTA chiede a Claude, Kimi e...
Intel e Oracle puntano sulle CPU Xeon pe...
Offerte Amazon da urlo: Mac mini M6 a 89...
Bici elettriche a prezzi da record su Am...
Il boom dell'IA fa salire i costi: HP, A...
Cloudflare: 18,2 milioni di attacchi DDo...
GeForce RTX 2080 Ti con 22 GB di VRAM: f...
Dalla padella... ai server AI: Nvidia va...
1.000 cicli e ancora il 90,4% della capa...
SMS of Death fa crashare Android senza i...
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: 14:00.


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