Tengo un programa simple y obtengo una infracción de acceso al *(str + start)
. ¿Por qué? Debería ser capaz de cambiarlo. ¿Derecha?¿Cómo se soluciona el error de ubicación de escritura de violación de acceso?
void fn()
{
char *str = "Hello wordl!";
int end = strlen(str);
int start = 0;
end--;
while(start < end)
{
*(str + start) = *(str + end); <--- Access violation writing location *(str + Start).
end--;
start++;
}
}
Su sugerencia sería idéntico al código actual. –
char str [] versus char * str hace que la cadena sea modificable. – Michael
Aquí hay un par de referencias a esto: http://www.iso-9899.info/wiki/StringsByExample https://www.securecoding.cert.org/confluence/display/cplusplus/STR30-CPP.+Do + no + intento + a + modificar + cadena + literales – Michael