ZawzietyRobaczek
ZawzietyRobaczek
#programowanie #programista15k #cpp Hej, mam taki problem: Chce mieć tablicę tekstur.. ale musze robić w C,
nie uzywam np. vector, czyli chce mieć dostęp do swojej tekstury w taki sposób:

ListaTekstur[10].pixel[3456]
Ten kod działa, mam dostep tak jak chcę:
https://paste.ofcode.org/7AEYqKLGFtCXdkG2u86gYb

Ale gdy już ubieram w funkcję, nie mam dostepu i wywala:
https://paste.ofcode.org/pgPWWdYUkmbJW7FT8AfmvC

z góry dzięki.. :D
0
  • Najlepsze
  • Wszystkie komentarze
Kaczus2B
Kaczus2B
@ZawzietyRobaczek: zapoznaj sie z komendami malloc i free aby bylo w C

natomiast w samym kodzie :

void funkcja_1(sBitmap* _textures_data)
powinno byc: void
2
zwei
@ZawzietyRobaczek: w tej chwili przypisujesz jakiś adres do zmiennej _textures_data, a z samą pamięcią pod pierwotną wartością _textures_data - adresem przekazanym do funkcji absolutnie nic się nie dzieje.
1
zwei
@ZawzietyRobaczek: w ogóle to się zdecyduj, czy piszesz w C, czy w C++. Teraz piszesz w jakiejś koszmarnej hybrydzie
1
ZawzietyRobaczek
ZawzietyRobaczek
@Kaczus2B: tak, tak.. tzn. docelowo mam własne typedef-y - bo tak, chce to przerzucić na Amigę potem wiec w razie czego musze miec kontrole nad typami zwłaszcza, że byc moze bede musal zrobić sobie fixed point dla optymalizacji, ogólnie bawie się w takie coś (raycaster - wydajna metoda generowania grafiki 2.5D - for fun)
1
ZawzietyRobaczek
ZawzietyRobaczek
@Kaczus2B: nie, nie.. ja robie z myślą o takich "nowoczesnych" kartach turbo które się ostatnio pojawiają z RTG, np V1200 68080 z RTG lub polski Warp1260, czyli omija się CHIP RAM i układy natywne i korzysta z trybu np. 24bpp, 32bpp itp
i z czystej ciekawości chciałem choć cześć kodu przeportować i zobaczyć ile wyciśnie chociaż przy 320x240, np. wolfy, doomy, quaki, duki to całkiem przyzwoicie smigają, ostatnio nawet Diablo
1
c.....o
c.....o
@ZawzietyRobaczek: Jak chcesz alokować pamięć w funkcji to najlepiej zwracać wskaźnik.
0
ZawzietyRobaczek
ZawzietyRobaczek
@Kaczus2B: @zwei: próbowałem ** - wywala taki błąd
0
SpinOff
@ZawzietyRobaczek: Fajnie widać jakich problemów można sobie narobić stosując takie antywzorce.
0
Kaczus2B
Kaczus2B
@ZawzietyRobaczek: a przeczytales w linku?

wywolanie funkcja(&my_bitmap);
0
ZawzietyRobaczek
ZawzietyRobaczek
@copego: z tym globalnym to tak, ale moge miec kilka podobnych zmiennych i chce je inicjalizowac przez funkcje
0
zwei
@ZawzietyRobaczek: przekazujesz * do funkcji przyjmującej **, musisz przekazać adres wskaźnika (nie adres, który jest we wskaźniku, tylko adres samego wskaźnika). Popowiedź - &
0
Kaczus2B
Kaczus2B
@ZawzietyRobaczek: a ogolnie to i tak w C sie nie skompiluje, nie ma tam new, przy structurze albo powinienes dac typedefa, albo przy nazwie typu dodawac struct itd...
0
ZawzietyRobaczek
ZawzietyRobaczek
@Kaczus2B: teraz wywala inny błąd :(
0
ZawzietyRobaczek
ZawzietyRobaczek
@zwei: na razie chcielm rozwiazać ten problem - jestem w trakcie zmiany
0