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
Automaticke zvetsovani pole
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Automaticke zvetsovani pole
https://arze.cz - ARduino Zapojení Elektronika
Re: Automaticke zvetsovani pole
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.
https://cplusplus.com/doc/tutorial/dynamic/
Jinak to bohužel nejde.
Re: Automaticke zvetsovani pole
Š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.
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
Diky, asi bude nejjednodussi nastavit rovnou max velikost a pak to neresit 

https://arze.cz - ARduino Zapojení Elektronika
Re: Automaticke zvetsovani pole
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.
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.
Kdo je online
Uživatelé prohlížející si toto fórum: Bing [Bot] a 3 hosti