Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    file openedSegmentation fault [c]

    allora scusate se disturbo ancora cmq sto creando un editor di testo in C ora sto facendo il salvataggio di un file...se viene cliccato su salva controlla che il file sia aperto oppure no e se è aperto salva le modifiche, ma mi da l'errore file openedSegmentation fault sapete dirmi cos'è?
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  2. #2
    Memory Leak, Puntatore non Allocato, Memoria non liberata.
    Insomma un errore nella gestione della memoria.

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da menphisx
    Memory Leak, Puntatore non Allocato, Memoria non liberata.
    Insomma un errore nella gestione della memoria.
    ora posto i passi interessati:
    codice:
    #include <gtk/gtk.h>
    #include "gui.h"
    #include <stdio.h>
    #include <stdlib.h>
    FILE *f;
    GtkWidget *textView;
    ...
    static void file_ok_sel( GtkWidget        *w,
                             GtkFileSelection *fs )
    {
        f=fopen((char*)gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)),"r+");
        if(f!=NULL){
    	g_print("file opened");
    	gtk_widget_destroy(GTK_WIDGET(fs));
    	char* c=(char*)malloc(sizeof(char)*21);
    	
    	GtkTextBuffer* buff;
    	GtkTextTagTable* t = gtk_text_tag_table_new();
    	buff = gtk_text_buffer_new(t);
    	
    	while(!feof(f)){
    		
    		fgets(c,21,f);
    		gtk_text_buffer_insert_at_cursor(buff,c,-1);
    		
    	} 
    	
    	gtk_text_view_set_buffer(GTK_TEXT_VIEW(textView),buff);
    	
        }else{ g_print("error");}
    }
    
    static void cancel_option(GtkWidget* w, GtkFileSelection* fs){
    	gtk_widget_destroy(GTK_WIDGET(fs));
    }
    
    static void open_event(GtkWidget *w)
    {
    	
    	GtkWidget *fs;
    	
    	fs = gtk_file_selection_new ("File selection");
    	gtk_widget_show (fs);
    	
    	g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (fs)->ok_button),
    		      "clicked", G_CALLBACK (file_ok_sel), (gpointer) fs);
    	g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (fs)->cancel_button),
    		      "clicked", G_CALLBACK (cancel_option), (gpointer) fs);
    	 
    }
    ....
    spero possa essere d'aiuto
    ho visto qualcosa proprio ora fclose(f) asd... :master: nn è questo il problema
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  4. #4
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    nessuno?
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Hai individuato la linea che causa il segmentation fault?

    Tra l'altro, manca la free per la malloc ... (non e' la causa del problema ma puo' essere fonte di altri problemi)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da oregon
    Hai individuato la linea che causa il segmentation fault?

    Tra l'altro, manca la free per la malloc ... (non e' la causa del problema ma puo' essere fonte di altri problemi)
    penso che sia la scrittura sul file che mi sono accorto di non aver postato e la free l'ho messa stamani
    codice:
    static void file_ok_sel_s( GtkWidget        *w,
                             GtkFileSelection *fs
    			)
    {
        	f = fopen((char*)gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)),"w");
        
    	g_print("file saved");
    	gtk_widget_destroy(GTK_WIDGET(fs));
    	
    	GtkTextBuffer* buff;
    	
    	buff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textView));
    
    	GtkTextIter *end, *start;
    	gtk_text_buffer_get_start_iter(buff,start);
    	gtk_text_buffer_get_end_iter(buff,end);
    
    	fprintf(f,"%s",(char*)gtk_text_buffer_get_text(buff,start,end,FALSE));
    	
    }
    ...
    static void save_event(GtkWidget *w){
    	GtkTextBuffer* buff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textView));
    	if(f!=NULL){
    		
    		GtkTextIter *end, *start;
    		gtk_text_buffer_get_start_iter(buff,start);
    		gtk_text_buffer_get_end_iter(buff,end);
    		fprintf(f,"%s",(char*)gtk_text_buffer_get_text(buff,start,end,FALSE));
    	}else{
    		GtkWidget *fs;
    	
    		fs = gtk_file_selection_new ("File selection");
    		gtk_widget_show (fs);
    		g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (fs)->ok_button),
    		      "clicked", G_CALLBACK (file_ok_sel_s), (gpointer) fs);
    		g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (fs)->cancel_button),
    		      "clicked", G_CALLBACK (cancel_option), (gpointer) fs);
    	}
    }
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Dovresti identificare precisamente la linea in cui interviene l'errore ... sarebbe di enorme aiuto per tutti ... non e' difficile ... usa qualche printf ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da oregon
    Dovresti identificare precisamente la linea in cui interviene l'errore ... sarebbe di enorme aiuto per tutti ... non e' difficile ... usa qualche printf ...
    precisamente non lo so succede a runtime...penso sia nelle fscanf che uso anche perché il file lo crea mentre nn riesce a scrivere i dati
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Usa delle printf tra le varie istruzioni per capire quando il programma si ferma ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da oregon
    Usa delle printf tra le varie istruzioni per capire quando il programma si ferma ...
    ma non leggi?! si ferma quando prova a fare la printf!
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

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 © 2026 vBulletin Solutions, Inc. All rights reserved.