Variable scope, libraries

The documentation you're looking for isn't available from Arduino because they didn't write the compiler, and few people need to know the underlying details. You can look here for the avr-libc documentation, which covers all the stuff you're wondering about.

TomLeMort:

jraskell:
I wasn't talking about an array of pointers to dynamically allocated objects. I was talking about an array of objects. Forgo the dynamic allocation entirely. On platforms with such limited memory footprints, dynamic allocation is rarely of any true benefit.

OK. However the case is a little bit more complex, since my objects (of type A) contain arrays that can have any size. I must allocate them with a malloc. I don't think using an oversized big array is a good solution.

I think jraskell's point is that you don't NEED to have 'A' contain dynamically allocated arrays, at all. There isn't enough available RAM to make this practical. On an embedded processor, using malloc() is rarely a good idea, and you'll find that in just about every case, a fixed-size array will work out better.