logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dziwne zachowanie bascoma - zmienne typu string

22 Lis 2011 16:04 1678 6
REKLAMA
  • #1 10169219
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #2 10169261
    mmacura
    Poziom 18  
    Program działa "prawidłowo" pewnie dlatego że jest taki prosty i krótki.
    Gdyby miał więcej zmiennych pewnie by się wyłożył w najmniej oczekiwanym momencie. Widocznie Bascom, podobnie jak np C nie kontroluje tego co robi programista i to Ty musisz uważać co robisz.

    Marek
  • REKLAMA
  • #3 10169397
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #4 10169461
    mmacura
    Poziom 18  
    No to pewnie w najmniej oczekiwanym momencie zaczną się dziać różne cuda i będziesz się głowił co jest nie tak. Kompilatyor musi gdzieś upchać te dodatkowe bajty i pewnie zamazuje nimi kolejną zmienną w pamięcie (może akurat masz szczęscie i chwilowo akurat ta zmienna jest ostatnia, ale wystarczy że zmienisz kolejność zmiennych lub dodasz następną i problem gwarantowany).
    RAM nie jest z gumy a cuda się w mikrokontrolerach raczej nie zdarzają.

    Poza tym nie denerwuj się tak, bo nie ma czym - skąd miałem wiedzieć jak wygląda Twój normaly program skoro go nie pokazałeś.

    Marek
  • REKLAMA
  • #5 10169516
    Konto nie istnieje
    Konto nie istnieje  
  • #6 10169570
    mmacura
    Poziom 18  
    Niestety przesiadka na C też by nic nie dała, ponieważ on też tego nie kontroluje.
    Jeśli zadeklarujesz tablicę o długości 10 bajtów i odwołasz się do niej:

    
    char tablica[10];
    
    tablica[12] = 1;
    


    to się wzburzy że jest błąd, ale jeśli zrobisz tak:

    
    char tablica[10];
    char tablica1[20];
    
    strcpy(tablica,tablica1);
    


    to nie będzie nawet ostrzeżenia a program się posypie.

    Marek
  • #7 10169652
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA