Linked List?

It's possible to allocate memory? Or it's more convenient to write data directly on a SD card and then read it from here?

Thank you!

You can store data in memory for example with malloc(), and also in EEPROM inside the microcontroller, on an external serial EEPROM, on a SD card, online using an Ethernet shield, and so on.

The SD card makes it possible to write large amounts of data and read it quickly on a computer. It requires a large library for the SD card.
An external EEPROM is cheap and can have a lot of memory. However, reading a lot of data is slow.

It depends what you want, what you have, and which Arduino board you want to use.

How much memory do you estimate you need to allocate, how often, what for and how long must the data persist ?

Actually I'm studying data structures in C at the university, I was just curious about it!

I was thinking about the different speed of saving something somewhere.
In the need of a permanent file to read on a PC, the idea was: First allocate all your data in the fast RAM memory, and, when you are done, create a file on the SD card. Also creating and managing simple .txt is not so simple as managing a linked list!

The problem is that RAM is at a premium on the Arduino, and linked lists tend to fragment it. It is better to allocate a large chunk and create your own routine to use smaller bits for your structures.

IMHO, statically allocated arrays are better on Arduino, though since they have to be based on the largest number of entries might waste some space.

Yes, I'd second that, although the more 'memoried' Arduinos (is that a word?) such
as the Due could handle more complex data-structures more comfortably. Watch
out for space-leaks with allocation though, that's when you fail to deallocate data-structures
you've finished with, and memory gradually runs out.