Wpis z mikrobloga

#ansic #c #naukaprogramowania
Mam takie zadanie:

Zakładamy, że dynamiczna rezewacja pamięci (użycie funkcji

malloc) jest niedostępna. Wobec tego zadeklaruj w swoim programie tablicę o rozmiarze

określonym pierwszą liczbą w strumieniu danych wejściowych.


Jak to zrobić bez malloca? :O
  • 36
  • Odpowiedz
@Caishen: A czemu mialoby być zakazane, bo nie rozumiem? Masz na wejściu jakąś liczbę w runtime, potem mając tą liczbę N alokujesz N * sizeof(type) bajtów na stosie, tzn robisz SUB RSP, N sizeof(type) i tyle, access do zmiennych deklarowanych po takiej tablicy jest relatywny do wielkości tablicy ( tj N sizeof(type) )
  • Odpowiedz
Zapomniałbym, pisząc coś takiego trzeba pamiętać, że stos też jest skończony ( ͡° ͜ʖ ͡°) i jak przesadzisz to może skończyć się wyjściem poza zmapowany obszar pamięci na stos

@KrzaQ2
No dobrze, nie zmienia to faktu, że jest to implementowalne bez większego problemu.
  • Odpowiedz
@alex-fortune: Nie bardzo w przypadku mikroprocków ;) Ponadto trzeba to formalnie zdefiniować w standardzie a to więcej roboty niƶ to warte - przynajmniej tak uznali. Tbh w C++ mi specjalnie VLA nie są potrzebne.
  • Odpowiedz