Autor
|
Tema: Cadena de caracteres por referencia [C] (Leído 2,788 veces)
|
n-utz
Desconectado
Mensajes: 165
Babylon es el vampiro!
|
Buenas gente, miren tengo una duda..
En caso de tener una cadena de caracteres "estática", por ejemplo en mi caso:
lista[n], siendo n un entero pedido antes.
Y quiero pasar dicha variable a una función para que la modifique y después retorne al main para escribirlo en un txt.
Se puede trabajarlo así? O tengo que trabajarlo con malloc?
Mi idea es escribir por ejemplo un nombre, después que retorne al main, lo limpia a 0, y que vuelva a mandarle la misma cadena pero toda llena de 0 para que la complete devuelta.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
A partir del estándar C99 se puede hacer lo que dices. En C++, también lo podrás hacer así.Sin embargo, mi opinión es que yo utilizaría malloc por pura compatibilidad ( https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features) Ahora bien, hagas como lo hagas, se lo podrás pasar a una función de la misma manera (como un char*, por ejemplo)
|
|
« Última modificación: 18 Noviembre 2016, 18:16 pm por ivancea96 »
|
En línea
|
|
|
|
geeke
Desconectado
Mensajes: 93
|
A partir del estándar C99 se puede hacer lo que dices. En C++, también lo podrás hacer así.
Cabe aclarar que los array de longitud variable no forman parte del estándar de C++ pero algunos compiladores lo permiten como una extensión como por ejemplo g++.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Oh, sí, gran despiste :X
|
|
|
En línea
|
|
|
|
n-utz
Desconectado
Mensajes: 165
Babylon es el vampiro!
|
Perfecto, usaré malloc, el tema es que siempre voy a utilizar las mismas posiciones cambiandole continuamente sus valores. Habrá inconvenientes? Me conviene usar free, antes de acomodar nuevos valores?
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Si elt amaño del array no va a cambiar desde que haces malloc, no necesitas hacer free. Cuantas menos operaciones hagas, mejor. Si solo cambiarás sus valores, sé libre de ello sin problema. Eso sí, al final, cuando hayas acabado, sí que liberas memoria con free, claro está.
|
|
|
En línea
|
|
|
|
n-utz
Desconectado
Mensajes: 165
Babylon es el vampiro!
|
Si elt amaño del array no va a cambiar desde que haces malloc, no necesitas hacer free. Cuantas menos operaciones hagas, mejor. Si solo cambiarás sus valores, sé libre de ello sin problema. Eso sí, al final, cuando hayas acabado, sí que liberas memoria con free, claro está.
Muchas gracias!!
|
|
|
En línea
|
|
|
|
|
|