Ich weiss zwar nicht warum, aber so funktioniert es. Da spart man sich den doppel Pointer
blah *a = 0;
func(a);
void func(blah *&a) {
a = new blah;
}
Also, ein Pointer einer Funktion übergeben und erst in der Funktion Speicher reservieren. Der Pointer bleibt aber ausserhalb der Funktion nutzbar.