2012-05-17 31 views
5

Programımda olmayan bir yerden gelen garip seg hatalarını alıyorum ... kesinlikle açık değil. İki dizide "strcmp" yi arıyorum ... Her iki dizide de aynı yapı tipinde depolanır. "->" Birlikte çözümleyecek yoluyla nokta gösterimi ile ve diğeri de alıyorum:Segmentasyon Hatası: "... böyle bir dosya veya dizin yok"

int name = strcmp(one.name, two->name); 

O iyi derler ama çalıştırmak zaman seg arıza olsun. GDB ile takip etmeyi denedim, ancak nerede oluşacağını düşündüğüm noktalarda hemen önce kesme noktaları koyduğumda, hataları yine de ayırıyor. Ben alıyorum:

Program received signal SIGSEGV, Segmentation fault. 
__strcmp_ia32() at ../sysdeps/i386/i686/multiarch/../strcmp.S:40 
40 ../sysdeps/i386/i686/multiarch/../strcmp.S: No such file or directory. 
    in ../sysdeps/i386/i686/multiarch/../strcmp.S 

FML. Öneriler? Teşekkürler!

+1

Gdb'de segfaults olduğunda bir backtrace denediniz mi? –

+2

Arama noktasında 'one.name',' two' ve 'two-> name' değerleri nedir? – Mud

+3

Bir segmentasyon hatasıyla karşılaştınız ve ortamınızda "strcmp" kaynağı bulunmuyor, Sistem bunu aramaya çalıştığında * segment hatası oluştu. Kaynak, standart bir kütüphane işlevi olması için gerekli değildir. Sorun şu ki, bellek başka bir yerde sınırlarını üzerine yazıyorsunuz. Programınızı valgrind veya bir hafıza analiz aracı ile oluştururken nerede tam olarak ayrıntı vermelidir. –

cevap

2

Benim önerim: -g ile derleyin ve valgrind ile çalıştırın.

İlgili konular