Is there a difference between:

    T * ptr = alloca (size);
and

    char buffer[size];
    T * ptr = &buffer;
under the assumption that this happens at the top-level of a function?

Not that I know of