Es un comportamiento indefinido desechar la coherencia de un parámetro de función?

Imagine que tengo esta función C (y el prototipo correspondiente en un archivo de encabezado)

void clearstring(const char *data) {
    char *dst = (char *)data;
    *dst = 0;
}

Hay un comportamiento indefinido en el código anterior,casting theconst lejo, ¿o es simplemente una práctica de programación terriblemente mala?

Supongamos que no se utilizan objetos const const

char name[] = "pmg";
clearstring(name);

Respuestas a la pregunta(4)

Su respuesta a la pregunta