folder Tahribat.com Forumları
linefolder C - C++
linefolder Malloc(): Memory Corruption



Malloc(): Memory Corruption

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    En kısa yol algoritması uygularken

    Sehir1 Sehir2 Mesafe

    şeklinde satır satır okuyorum. Her satırı okurken bir pointer arrayi içerisinde sehir yoksa oluşturuyorum struct sehir türünde. Sonra aralarındaki  bağlantıları kuruyorum.

    En son da dijkstra'nın algoritmasını uyguluyorum.

    81 il ile rastgele bir input dosyası oluşturdum 467 satır sıkıntısız buluyor ama 50bin edge ile deneyin diyor hocalar o yüzden 49200 küsür satırlık bir input oluşturdum onda başlıkta yazdığım hatayı veriyor. Bir türlü işin içinden çıkamadım teslime de az kaldı.

     

    Edit: printf ile kontrol etmeye çalışıyorum 467 satırlık olan inputta son satıra kadar okuyor diğerinde 65. satırda hata verip çıkıyor.

     

    *** glibc detected *** ./program: malloc(): memory corruption: 0x08dce350 ***
    ======= Backtrace: =========
    /lib/i386-linux-gnu/libc.so.6(+0x6ff22)[0xdeaf22]
    /lib/i386-linux-gnu/libc.so.6(+0x718be)[0xdec8be]
    /lib/i386-linux-gnu/libc.so.6(__libc_malloc+0x68)[0xdee7f8]
    ./program[0x804869f]
    ./program[0x80488ce]
    ./program[0x8048d27]
    /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xd94113]
    ./program[0x80485b1]
    ======= Memory map: ========
    00110000-0012c000 r-xp 00000000 07:00 131772     /lib/i386-linux-gnu/libgcc_s.so.1
    0012c000-0012d000 r--p 0001b000 07:00 131772     /lib/i386-linux-gnu/libgcc_s.so.1
    0012d000-0012e000 rw-p 0001c000 07:00 131772     /lib/i386-linux-gnu/libgcc_s.so.1
    0013c000-0013d000 r-xp 00000000 00:00 0          [vdso]
    0096f000-0098d000 r-xp 00000000 07:00 140256     /lib/i386-linux-gnu/ld-2.13.so
    0098d000-0098e000 r--p 0001d000 07:00 140256     /lib/i386-linux-gnu/ld-2.13.so
    0098e000-0098f000 rw-p 0001e000 07:00 140256     /lib/i386-linux-gnu/ld-2.13.so
    00d7b000-00ef3000 r-xp 00000000 07:00 140259     /lib/i386-linux-gnu/libc-2.13.so
    00ef3000-00ef5000 r--p 00178000 07:00 140259     /lib/i386-linux-gnu/libc-2.13.so
    00ef5000-00ef6000 rw-p 0017a000 07:00 140259     /lib/i386-linux-gnu/libc-2.13.so
    00ef6000-00ef9000 rw-p 00000000 00:00 0
    08048000-0804a000 r-xp 00000000 07:00 551350     /home/ultralover/Desktop/the2.jun12/program
    0804a000-0804b000 r--p 00001000 07:00 551350     /home/ultralover/Desktop/the2.jun12/program
    0804b000-0804c000 rw-p 00002000 07:00 551350     /home/ultralover/Desktop/the2.jun12/program
    08dcb000-08dec000 rw-p 00000000 00:00 0          [heap]
    b7600000-b7621000 rw-p 00000000 00:00 0
    b7621000-b7700000 ---p 00000000 00:00 0
    b774e000-b774f000 rw-p 00000000 00:00 0
    b775e000-b7762000 rw-p 00000000 00:00 0
    bf8e9000-bf90a000 rw-p 00000000 00:00 0          [stack]
    Command terminated by signal 6

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Okuyup işini hallettikten sonra free etmeyi mi unutuyorsun?


    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    '\0' için yer almamışım o sorun halloldu bu sefer de dijkstra algoritmasının uygulamasında segmentation fault veriyor ama 81 illi kısa inputta doğru sonucu veriyor. Aklım almıyor.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Uplamak istemezdim ama birşey farkettim. Aynı graph içerisinde bazı şehirler arasında hata verirken bazıları arasında vermiyor bakıyorum bakıyorum bir sıkıntı göremiyorum.

     

Toplam Hit: 1053 Toplam Mesaj: 4