Şimdi Ara

how to fix anything Segmentation Fault (core dumped) ??

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
14
Cevap
0
Favori
933
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Başlıkta yazdığı gibi bu hatanın bir çözümü olabilir mi? bu aşağıdaki kodu bir printf kullanarak çıktı alabilir misin? yada hep bu bahsedilen uyarıyı mı verir?

    #include <stdio.h>
    void foo()
    {
    char *x = 0;
    *x = 3;
    }

    int main()
    {
    foo();
    return 0;

    }

    Haydi tefekkür vakti! Hemen yazma! Biraz düşün.

    < Bu ileti mobil sürüm kullanılarak atıldı >



  • Null pointeri dereference etmissin undefined behavior olarak geçer modern isletim sistemlerinde genelde segmentantation hatası verdirir

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • kurosaki_ichigo kullanıcısına yanıt
    bunu pointer'ı farklı kullanarak çıktı verebildim. //C++ bir şekilde onu yapabildim. lakin loop içinde olacak mı şu an net bir şey söyleyemem.
    ve char *x=3; aynen kaldı. değiştirmedim.

    int* to int* olayı yok.


    Null pointeri dereference etmissin undefined behavior bunu bahseder misin?
    nelere izin vermez? neden böyle bir hata verir? Amaç ne?



    < Bu mesaj bu kişi tarafından değiştirildi berce -- 8 Ağustos 2019; 1:28:58 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Bir pointer olustururken tanimlamasını yapmassan
    char *x;
    gibi, x pointeri hafizada ki rastgele bir yere isaret eder ve bu adres senin programın için ayrılmış hafıza bloğunun içinde değilse kullanmaya çalıştığında yetkisiz erişim den dolayı segmentation fault hatası alırsın

    Eğer pointerin herhangi bir yere işaret etmesini istemiyorsan
    char *x = null; veya char *x = 0;
    diyerek bunu belirtir ve yanlış erişim sonucu programın yapısını bozarak kararsız çalışmasını önlersin.

    Windows / Linux gibi işletim sistemleri virtual memory denen bir hafıza yönetim sistemi kullanırlar ve 0 sanal adresi herhangi bir fiziksel adrese denk gelmez bu yüzden 0. adrese işaret eden pointeri dereference edersen modern sistemlerde genelde segmentation hatası verir

    Undefined behaviour un anlamı bu işlem c/c++ standardında tanımlanmamış ve sonucu mimari/platforma göre farklı olabilir mümkünse kullanma demek

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • kurosaki_ichigo kullanıcısına yanıt
    Undefined behaviour
    bunun için bir link verbilir misin? senin baktığın daha detaylı araştırma yapabilirim.
    altaki mesaja bakarsın.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • bu iki resimde aynı koda ait :)
    birsinde Segmentation Fault derken
    diğerinde bir kod eklemesi ile *x veriyor :)
    hemde char to int yada form int to char olarak.
    lakin şu an sadece main function'da çalışıyor.

    how to fix anything Segmentation Fault (core dumped) ??
    how to fix anything Segmentation Fault (core dumped) ??

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • berce B kullanıcısına yanıt
    Pointer 'ın doğru kullanımı örneğin şunun gibidir.
    #include <stdio.h>
    void foo()
    {
    int* x = NULL;
    int d = 100;
    x = &d;
    printf("x: %i\n", *x);
    }


    Seg Fault C/C++ ile yazılmış olan PHP, Node.js gibi komut satırı programların güncel sürümlerini eski işletim sistemlerinde çalıştırmaya çalıştığınızda da verir sebebi eski işletim sistemi exe'yi daha farklı başlattığı ve güncel sürümün onu desteklememsi ile ilgilidir.
  • Buradaki esas nokta bir işaretçideki değeri almak yani memory tutulan değeri görmek. benim yaptığım şey bir sitedeki bir makalenin denemesi idi.

    #include <stdio.h>

    int main()
    {
    int *d;
    *d= 100;
    printf("*d: %i\n", *d);
    return 0;
    }

    bunu verebilir misin ben null kullanmadan sadece ve en fazla 2 variable değişken kullanarak yaptım. *d=100 gösterdim.



    Bunu function içinde yapmanın yollarına bakacağım daha sonra.. C/C++ *d değerini alabiliyorsun.
    buradaki niyetim. function içinden veri almak. sonra onu main göstermek. (bunu farklı kullanımlar için yapacağım)


    pointer alakam, eğer bir hacker yada sistem manager'ı yada veri çekmek isteyen bunu kullanabilir mi diye merak ettim?

    bahsettiğim o site, işte bu site:https://www.cprogramming.com/debugging/segfaults.html



    < Bu mesaj bu kişi tarafından değiştirildi berce -- 8 Ağustos 2019; 18:18:29 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • İlluminati detected!

    Bunlar hep yahudi lobisinin oyunları. Bizi malloc gibi gereksiz şeylerle uğraştırıp programlarımızı yavaşlatıyorlar. Kendileri ise şak diye adresi gömüyorlar pointer'a. İşletim sistemi de bunlardan yana olduğu için ses etmiyor. Ama biz müslümanlara geldi mi hooop seg fault hemşerim! Adamlar Lozan'ın gizli maddelerine yazmışlar bunu yapacak bişey yok.
  • .



    < Bu mesaj bu kişi tarafından değiştirildi seyfi84 -- 28 Mayıs 2020; 7:25:55 >
  • uzaklaştırılıp ceza almaktan iyidir. buna karar vermiş olan modatörler.adminler.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.