Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dziwne zachowanie bascoma - zmienne typu string

22 Lis 2011 16:04 1525 6
  • Użytkownik usunął konto  
  • Poziom 17  
    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
  • Użytkownik usunął konto  
  • Poziom 17  
    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
  • Użytkownik usunął konto  
  • Poziom 17  
    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:

    Code:

    char tablica[10];

    tablica[12] = 1;


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

    Code:

    char tablica[10];
    char tablica1[20];

    strcpy(tablica,tablica1);


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

    Marek
  • Użytkownik usunął konto