>but why would you say thats a dangerous typedef
It hides the fact that it's a pointer. Typedefs that hide pointer types at all are generally unsafe and confusing, but in this case it's especially unsafe because strings in C are so common and the typedef could cause one to forget the unique attributes of C-style strings. That way lies chaos. :)