¿Cómo funcionan las cadenas y matrices de caracteres en C?
No he visto guías que parezcan explicar esto muy bien.
Quiero decir, puedes asignar memoria para unchar*
, o escribechar[25]
¿en lugar? ¿Cual es la diferencia? Y luego están los literales, que no pueden ser manipulados? ¿Qué sucede si desea asignar una cadena fija a una variable? Me gusta,stringVariable = "thisIsALiteral"
, entonces como lo manipulas despues?
¿Alguien puede establecer el récord aquí? Y en el último caso, con el literal, ¿cómo se hace cargo de la terminación nula? Encuentro esto muy confuso.
EDITAR: El problema real parece ser que, como lo entiendo, tienes que hacer malabarismos con estas diferentes construcciones para lograr incluso cosas simples. Por ejemplo, solochar *
se puede pasar como argumento o valor de retorno, pero solochar[]
Se le puede asignar un literal y modificarlo. Siento que es obvio que con frecuencia / siempre necesitamos poder hacer ambas cosas, y ahí es donde está mi escollo.