|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
[C] segmentation fault
#include <stdio.h>
#include <stdlib.h> #define FILE2 "prova.txt" int main (int argc , char **argv) { FILE *fp; struct lista { int value; } *list_p; if ((fp=fopen(FILE2,"r")) != NULL) fscanf(fp,"%d", &(list_p->value)); printf("%d", list_p->value); system("Pause"); } Come mai mi và in segmentation fault?? ![]()
__________________
Ciao ~ZeRO sTrEsS~ |
![]() |
![]() |
![]() |
#2 | |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Re: [C] segmentation fault
Quote:
Se riesci ad aprire il file, scrivi roba a caso su una zona di memoria a caso --- il che, di solito, causa un segmentation fault. A proposito: se non riesci ad aprire il file, la printf viene eseguita.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
Re: Re: [C] segmentation fault
Quote:
Ma il puntatore non punta alla struttura? Non è già inizializzato all'indirizzo della struttura?
__________________
Ciao ~ZeRO sTrEsS~ |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
No; hai dichiarato e allocato un puntatore, ma nessuna struttura a cui farlo puntare. Quindi punta a caso, come ogni buona variabile non inizializzata
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:57.