Toma en cuenta que con el ciclo for que planteas no le asignas el caracter '\0' al final de la cadena, esto es necesario para indicar el final de la misma.
Código:
for (i=0; puntero[i]!='\0'; i++);
cadena[i]=puntero[i];
cadena[i]='\0';
Aunque para copiar la cadena yo usaría strcpy.
Saludos