folder Tahribat.com Forumları
linefolder Elektronik / Embedded / Mobil Cihazlar
linefolder CCS C String Truncated Hatası Ve Yüksek RAM Kullanımı



CCS C String Truncated Hatası Ve Yüksek RAM Kullanımı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

    Mikrodenetleyiciler ödevi için aklıma tavla zar atma uygulaması geldi.

    CCS C ile yapmaya çalıştım bir şeyler, tabi bellek yönetimi konusunda sıkıntılıyım.

    String Truncated hatası alıyorum, Bellek %67 kullanılıyor. Bir yerlerde sorunum var. String tanımlamada sıkıntım var büyük ihtimalle, pointer kullanmadım.

    Sarı virgüllerin olduğu yere denk gelince ekranda sıkıntı çıkartıyor.

    Yukarıda sadece Cihar-i Se yazması gerekiyordu.

    Kodlar : http://paste.ubuntu.com/15407373/

    pSkpt tarafından 17/Mar/16 14:44 tarihinde düzenlenmiştir

    İmza...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    http://stackoverflow.com/questions/6599707/2d-character-array-initialization-in-c

    Array tanimlaman yanlis hocam.

     


    There are 10 types of people in the world. Those who knows binary and those who dont...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Konu Dışı Up olsun...

    yek = 1 

    du(dıdo) = 2

    se(sıse) = 3

    çar = 4

    penç = 5

    şeş = 6

    Çok cahilim sadece bizim buralarda böyle sayıyorlar sanıyordum. sayılara neden kürtçe isim verilmiş bi araştırmak lazım.


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek
    DuPi bunu yazdı

    Konu Dışı Up olsun...

    yek = 1 

    du(dıdo) = 2

    se(sıse) = 3

    çar = 4

    penç = 5

    şeş = 6

    Çok cahilim sadece bizim buralarda böyle sayıyorlar sanıyordum. sayılara neden kürtçe isim verilmiş bi araştırmak lazım.

    Farsca kokenli onlar hocam :)

     


    There are 10 types of people in the world. Those who knows binary and those who dont...
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zork.
    torpedo_XL
    torpedo_XL's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Yazdığın kod acayip geldi bana. Ondan kodun hakkında yorum yapmayacağım ama %67 bellek sıkıntın string tanımlarken "char rom" diye tanımlamandan dolayı kaynaklanıyor. ROM diye birşey algılamadığı için direk RAM'e yazmış.

    O kısımları "char const" diye değiştirirsen sıkıntın çözülür.

     

     

    torpedo_XL tarafından 17/Mar/16 19:15 tarihinde düzenlenmiştir

    Bilge insanlar konuşurlar çünkü söyleyecek bir şeyleri vardır. Aptal insanlar konuşurlar çünkü bir şey söylemek zorundadırlar. Demokrasi, bir eğitim işidir. Eğitimsiz kitlelerle demokrasiye geçilirse oligarşi olur. Devam edilirse demagoglar türer. Demagoglardan da diktatörler çıkar. --Platon, Devlet                                                                                                                                                                                                                                                                                                                                                                                         
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

    http://paste.ubuntu.com/15416516/

    şu şekilde değiştirdim.

    RAM : 11%

    ROM: 13%

    Fakat sonuç şu şekilde çıkıyor.

    Büyük ihtimal pointer olarak tanımladım ama çağırırken pointerları çağırıp hafızadan orayı almaya çalışıyorum sorun oradan çıkıyor.

    Nasıl düzeltebilirim?

     


    İmza...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

     

    şu şekilde değiştirerek düzelttim fakat hala daha string array ve pointer'ları tam anlamıyla kavrayabilmiş değilim.

    char zar; diye bir şey oluşturup switch içerisinde

    case 1: zar = zar_1[buyuk-kucuk];

    yapıp çalıştırınca mesela olmuyor.

    char *zar; denedim. char zar[]; denedim char zar[][]; denedim olmadı. Bunla alakalı güzel bir kaynak var mı acaba C de array ve pointer kavramlarını tam olarak anlayabileceğim.

     


    İmza...
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Odd Emoji 3D
    BerkayCit
    BerkayCit's avatar
    Kayıt Tarihi: 25/Şubat/2011
    Erkek

    Hem bir up olsun çünkü mutlaka iyi bilen vardır ama benim bildiğim kadarıyla eğer köşeli parantez kullanıyorsan diğer tarafında adreslenebilir olması lazım. Senin direk olarak ataman ve değiştirmen bir hataya yol açıyor olabilir. Bunu illa bu şekilde yapıcam köşeli parantezleri kullanıcam dersen strcpy kullanınca sorun düzeliyor.

    Bildiğim kadarıyla diziyi sen değiştiriceksen *dizi_str şeklinde tanımlaman lazım. Bu şekilde tanımlayınca dizi_str artık bir değişkendir ve program tarafından değiştirilebilir.  

    Ama mesela char dizi_str [20] yapıp dizi_str = "merhaba" yazarsan yanlış oluyor çünkü dizi_str sabiti değiştirilmeye çalışılınıyor. Strcpy kullanarak düzeltilebiliniyor.. strcpy (dizi_str,  "merhaba") yapınca düzgün oluyor.. ama tabi bildiğim kadarıyla program tarafından değiştiriliyorsa genelde *dizi_str şeklinde kullanılmalı. Böyle tanımladıktan sonra dizi_str = "merhaba" dersek sorun çıkmaz. 

     

    Tabi senin programda birde kullanılacak dizinin sabit tutulması gerekiyor. Yani tanımlamadan yazarsak kısa bir kelimeyi uzunla değiştirirse sorun çıkmaz ama uzun bir kelimeyi kısa ile değiştirirse sorun çıkar. Onun için farklı bir çözüm geliştirmek gerek. Daha iyi bilenler bizi aydınlatacaklardır :) 

    Not: Sanırım bu sorunuda malloc kullanarak çözebilirsin.

    bkz. http://turgayozgur.com/c-de-malloc-calloc-free-realloc-fonksiyonlari.html

    BerkayCit tarafından 19/Mar/16 11:18 tarihinde düzenlenmiştir

    havalı bir şeyler yazdığımı hayal edin
Toplam Hit: 1940 Toplam Mesaj: 8
pic tavla ccs-c pic compiler zar at string truncated