What is the problem with this according to what I have found a 8k float array should work:
char a[ 32767 ];
short b[ 16383 ];
int c[ 16383 ];
long d[ 8191 ];
long long e[ 4095 ];
float f[ 8191 ];
double g[ 8191 ]; //double is the same size as float on AVR Arduino's
I testing it on mega but will be run on Atmega328P at the end.
Where did you find this table? It's fairly useless because it's highly dependent on the board used.
A float needs 4 bytes each on an AVR. So this array needs 14400 bytes of ram.
Arduino Mega -> 8192 bytes of ram
Arduino UNO -> 2048 bytes of ram
None of theses boards can hold a float array of this size.
Looks like a table that lists a maximum PROGMEM capacity of the Arduino Uno board depending on data type.
But you should note that the PROGMEM can't be used for variables, only for constants.
Anyway I need dynamic array. What does one do in this case? I guess I could go with unsigned int to save some space but I need 3600 elements in the array.
There has to be a smarter solution than just throwing hardware to the problem.
All my code needs to be doing is keep adding float data to an array every loop, if there is no data or zero data it needs to add zero, once the end of the array reached the code starts overwriting values in it from the beginning (not zeroing the array leaving everything in place, overwrite elements one by one when reached).
So array[360] works, I could create 10 arrays with 360 elements each and once an array's end is reached it automatically continues with array2. It seems adding more arrays don't increase the used memory.
each element (data) requires a given number of bytes depending on the type of the data (4 bytes for a float)
to store data you need memory. 10 floats require 10 x 4 = 40 bytes
memory is defined by the hardware you chose. so there is a built-in limit to what you can have in RAM.
what are you doing with those arrays? why do you need to keep 3600 elements ?
That gives the maximum array size supported by the compiler - arrays are limited to 32768 bytes for avr processors, because of the 16 bit addressing. Limits are further restricted by the physical memory of the processor.
Do you meant "AVR platform"?
Arduino platform includes many types of boards with variety of RAM options. Take for example ESP32, Arduino Due or RPi Pico.