Stránka 1 z 1
Automaticke zvetsovani pole
Napsal: 25 kvě 2023, 14:12
od Diego
Ahoj vsem,
Jde v arduinu nejak udelat aby se mi automaticky behem behu programu rozsirovalo 2D pole dle potreby?
Mam jeden rozmer pevne dany a potrebuju aby se druhy rozsiroval podle vyuziti v ramci RAM.
Jde to nejak?
Dik
Re: Automaticke zvetsovani pole
Napsal: 25 kvě 2023, 14:17
od ondraN
Použij normální příkazy CPP pro dynamické alokování-uvolnění paměti
https://cplusplus.com/doc/tutorial/dynamic/
Jinak to bohužel nejde.
Re: Automaticke zvetsovani pole
Napsal: 25 kvě 2023, 14:43
od Caster
Šel bych na to přes malloc, calloc, realloc viz doporučení
Arduino Memory Guide.
Např.
Changing size from 100 bytes to 1000 bytes using realloc.
Kód: Vybrat vše
char *ptr; ptr = malloc(100); ptr = realloc(ptr,1000);
Re: Automaticke zvetsovani pole
Napsal: 25 kvě 2023, 16:28
od Diego
Diky, asi bude nejjednodussi nastavit rovnou max velikost a pak to neresit
Re: Automaticke zvetsovani pole
Napsal: 28 kvě 2023, 22:13
od gilhad
Pokud je to možné, tak určitě.
Na Arduinu ti stejně poběží jen jeden program naráz, takže ušetřená paměť prostě leží ladem. A bez dynamického realokování to bude i jednodušší.
Nic proti optimalizacím a efektivitě, ale dokud paměť stačí, tak je přehlednost programu důležitější. A když stačit přestane, tak se dá levně a bezpečně ještě ušetřit pomocí F-stringů - Serial.println(F("Something"));
A teprve pak má cenu začít používat nějaké složitější techniky.