elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cadena de caracteres por referencia [C]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cadena de caracteres por referencia [C]  (Leído 2,788 veces)
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Cadena de caracteres por referencia [C]
« en: 18 Noviembre 2016, 05:20 am »

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cadena de caracteres por referencia [C]
« Respuesta #1 en: 18 Noviembre 2016, 16:11 pm »

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 Desconectado

Mensajes: 93


Ver Perfil
Re: Cadena de caracteres por referencia [C]
« Respuesta #2 en: 18 Noviembre 2016, 17:45 pm »

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cadena de caracteres por referencia [C]
« Respuesta #3 en: 18 Noviembre 2016, 18:16 pm »

Oh, sí, gran despiste :X
En línea

n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: Cadena de caracteres por referencia [C]
« Respuesta #4 en: 18 Noviembre 2016, 18:18 pm »

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)

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cadena de caracteres por referencia [C]
« Respuesta #5 en: 18 Noviembre 2016, 18:22 pm »

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 Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: Cadena de caracteres por referencia [C]
« Respuesta #6 en: 18 Noviembre 2016, 18:54 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Obtener caracteres de una Cadena VB.NET
.NET (C#, VB.NET, ASP)
NetStorm 7 17,549 Último mensaje 29 Diciembre 2009, 02:06 am
por NetStorm
cadena de caracteres
Programación C/C++
Ander123 1 2,326 Último mensaje 6 Septiembre 2012, 14:15 pm
por avesudra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines