Red de conocimientos turísticos - Información de alquiler - Una pregunta sobre programación en lenguaje C, no puedo encontrar el error, por favor pregúntele a un maestro

Una pregunta sobre programación en lenguaje C, no puedo encontrar el error, por favor pregúntele a un maestro

El problema con la sentencia for?(j?=?0;?j?lt;N?-?1;?j) se mueve al final cuando la longitud de la cadena no es tan grande . Simplemente cámbielo a for?(j?=?0;?j?lt;?strlen(w)?-?1;?j).

De hecho, existe una solución más sencilla: utilizar memcpy para copiar directamente la memoria. void?fun(char*?w, ?int?m)

{

int?len?=?strlen(w);

char*? tmp?=?(char*)malloc(sizeof(char)*N);

memset(tmp,?0,?N);

memcpy(tmp,?w, ?N);

memcpy(w, ?tmp? ?m, ?len?-?m);

memcpy(w? ?m, ?tmp, ?m);

gratis(tmp);

}