Allocating more memory Space in controller
EDIT: There are two issues - the structure array is too large for the memory, and the compiler cannot create variables larger than 256 bytes

Problem 1: Structure too large for RAM

The chip you are using has a RAM size of 3776 bytes (1) and the error says it requires 5100 bytes. 

You either need a new chip with more RAM, or you must reduce the size of your table. I suggest storing you values as unsigned integers (2 bytes). If you need the decimal places, simply multiply by 10 to the power of the number of places. E.g. 3.157 becomes 3157.

Why do you need 300 values? Perhaps you can store to EEPROM more often and reduce this number. If you are just having a large number to do averaging, consider adding to an accumulator variable instead.

E.g.

TempAccum += temp;


Then after 300 readings

TempTotal = TempAccum / 300;
TempAccum = 0;


Problem 2: No variables larger than 256 bytes:

A solution was posted in the link in the question but that was for variables. Instead of a structure, use individual variables:

float temp[300];
float humidity[300];
float pressure[300];


To access the variables (according to the link) you need to use pointers. e.g.

float *tempPtr;
tempPtr = temp;
tempPtr[100] = some_value;