Segmentation fault autour de strcpy?

Je sais que vous vous rap-moi sur les doigts mais.

Pourquoi faire la même erreur de Segmentation

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

quand ce n'est pas

char *cmd;
cmd = "plop";

Je ne pratique pas depuis un moment, et ne me souviens pas pourquoi.

ps: en fait, je sais que quelque chose comme ça, avant de le strcpy, il serait préférable de

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

mais je me demande pourquoi cette erreur de segmentation.

Merci !

OriginalL'auteur roro | 2011-06-22