Memory crash on TH1F table

Hey to all…
I need youur help, because 3 years before I used a method which is not working now. I have to make 8 TH1F histograms, so I thaught that I could use a TH1F table. In the past I used this command:

TH1F* h1[] = new TH1F[8];

As we all know, this command creates a dynamic table with elements of type TH1F. Now, I am trying to use it and crashes both ROOT and g++(that makes sense because, g++ uses ROOT’s libraries). The g++ does not compile and returns:
error: initializer fails to determine size of h1

Then I tried this:

TH1F* h1[8];

It compiled!!!(To be honest, it’s 1st time that I see the declaration of a pointer with size!!!)
But it crashes when it runs. Specifically, it crashes on the 3rd position of the table. So if I will not use this place(the 3rd) it works fine…
I think that I am making a huge mistake here, but I can’t find it… I remind you that the first way, worked great on a previous version of ROOT(I don’t remember which one was)…
Any suggestions???

TH1F *h1 = new TH1F[8]; // create all 8 histograms // use histograms, e.g. "(h1[0]).Draw();", ..., "(h1[7]).Draw();" delete [] h1; // delete all 8 histograms
See, for example, http://www.cplusplus.com/reference/std/new/operator%20new%5B%5D/ and http://www.cplusplus.com/reference/std/new/operator%20delete%5B%5D/