¿Error de segmentación alrededor de strcpy?

Sé que me golpearás sobre los nudillos pero.

¿Por qué falla la segmentación

char* cmd;
strcpy(cmd, argv[0]);

cuando esto no

char *cmd;
cmd = "plop";

o practiqué desde hace un tiempo y no recuerdo por qu

ps: en realidad, sé que algo así, antes de strcpy, sería mejor

char *cmd = (char*) malloc(strlen(argv[0]));

pero me pregunto por qué falla esta segmentación.

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta