eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziwny problem z kodem w C (gcc mips/pic32)Re: Dziwny problem z kodem w C (gcc mips/pic32)
  • Data: 2023-05-19 17:35:37
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Fri, 19 May 2023 17:21:59 +0200, Janusz wrote:
    > W dniu 19.05.2023 o 15:56, J.F pisze:
    >> On Fri, 19 May 2023 14:39:44 +0200, Janusz wrote:
    >>> W dniu 19.05.2023 o 13:32, J.F pisze:
    >>>> On Thu, 18 May 2023 12:44:11 +0200, Janusz wrote:
    >>>>> W dniu 18.05.2023 o 12:18, Marek pisze:
    >>>>>> On Thu, 18 May 2023 08:55:51 +0200, Janusz <j...@o...pl> wrote:
    >>>>>>> Dla mnie trochę dziwny jest ten fragment, reason-nie wykorzystana
    >>>>>>> zmienna a komunikat (z tablicy)  dwa razy wywołujesz ten sam, zmienna
    >>>>>>> status.
    >>>>>>
    >>>>>> Kod na potrzeby posta trochę uprościłem. Znalazłem dziada:
    >>>>>>
    >>>>>> unsigned short BT[300];
    >>>>>> int i;
    >>>>>>
    >>>>>> for (i=0; i<sizeof(BT);i++)
    >>>>>>   BT[i] = getval(i);
    >>>>>>
    >>>>>> Analizując mapę linkera widać, że BT była umieszczona tuż przed tamtą
    >>>>>> tablicą ze wskaźnikami do stringów.
    >>>>> No i co z tego, przecież to dwie osobne tablice i osobno się adresują i
    >>>>> chyba kompilator czy linkier nie ma tu błędu w adresacji?
    >>>>
    >>>> Tablice moze i osobne, ale jak przekroczysz rozmiar BT, to trafi nie
    >>>> wiadomo gdzie.
    >>> Ale przecież po to używa funkcję czy co to tam jest żeby mu policzyło
    >>> długość tablicy, na palcach jej nie liczył, a że funkcja skopana to
    >>> wychodzą kwiatki.
    >>
    >> No ale widzisz - źle policzył, przekroczyl zakres,
    > On czy funkcja?

    On.

    >> a C NIE MA ZABEZPIECZEN.
    > To wiadomo, po to użył funkcję.
    >
    >> I w miare dobrze, ze nie ma.
    >> A funkcja dobra, tylko źle użyta.
    > No nie, jest skopana skoro działa wybiórczo.
    > A Ty wiedziałeś przed tym wątkiem że taki problem istnieje?

    Jaki problem?
    że sizeof zwraca, a własciwie to podaje, rozmiar w bajtach, to wiem.

    że można zajechac obszar innej zmiennej w C, i nic przed tym nie
    ostrzeże - to też wiem.

    Markowi pogratulować, ze tak szybko namierzył miejsce problemu.

    >> A tu jeszcze co chwila cos nowego wymyślaja i zaskakują człowieka na
    >> stare lata ... i to w szczegółach, bo w ogółach to za tym postępem
    >> trudno nadążyć :-(
    > Ja akurat jestem 'techniczny' więc w miarę nadążam.
    > Ostatnio zamiast W7 bo mnie wkurzał zainstalowałem Ubuntu 22 LTS, a W7
    > postawiłem na wirtualce po to żeby odpalić na nim Avr Studio 7 i Kicada
    > 5 i coś tam jeszcze chodzące na windzie.

    A wiesz, ze juz jest W11 ? :-)

    J.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: