ptが未初期化という点を置いとくにしても、
*pt = strlen("hoge");
で駄目なのか?