/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Escribir todos los campos en un array de char

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Xedrox



Registrado: 27 Dic 2012
Mensajes: 20

MensajePublicado: 02/08/2013 7:16 am
Título: Escribir todos los campos en un array de char

Buenos días, el problema que tengo es que tengo varios campos de diferentes tipos de datos y los tengo que "concatenar" en una sola linea.

Por ejemplo tengo lo siguiente

Código:

char *CAMPO1;
char *CAMPO2;
char *CAMPO3;
char *CAMPO4;
char *CAMPO5;
char *CAMPO6;
char *CAMPO7;
int CAMPO8;


Los "char*" fueron inicializados con un malloc y luego se les seteo un valor. El int fue inicializado con un valor posteriormente.

Yo se que lo que pesan todos esos campos, son 47 bytes.

Lo que tengo hacer es un buffer para devolver como retorno de una funcion que tenga concatenado todos esos campos en un "char*".

Se me habia ocurrido hacer algo asi:
char *CAMPOSCAT=(char*) malloc(47);
y adentro usar "mempcpy" de alguna forma, pero no se como seguir.

Alguna idea?

Muchas Gracias
Saludos!

NOTA: Dentro de los char puede haber caracteres binarios y nulos que debo mantener y guardar. Por ejemplo si en la posicion. Tampoco puedo convertir el int a ascci, debo mantener sus binarios respectivamente para luego guardar en un archivo.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7520
Ubicación: Mexico

MensajePublicado: 07/08/2013 4:23 pm
Título: Re: Escribir todos los campos en un array de char

Xedrox escribió:
Por ejemplo tengo lo siguiente
Código:
char *CAMPO1;
char *CAMPO2;
char *CAMPO3;
char *CAMPO4;
char *CAMPO5;
char *CAMPO6;
char *CAMPO7;
int CAMPO8;


Los "char*" fueron inicializados con un malloc y luego se les seteo un valor. El int fue inicializado con un valor posteriormente.

Yo se que lo que pesan todos esos campos, son 47 bytes.

Como ya te comentaron en este y en otro foro el tamaño de los punteros dentro de la clase nada tiene que ver con el tamaño de los bloques de memoria reservados mediante malloc.

Xedrox escribió:
NOTA: Dentro de los char puede haber caracteres binarios y nulos que debo mantener y guardar. Por ejemplo si en la posicion. Tampoco puedo convertir el int a ascci, debo mantener sus binarios respectivamente para luego guardar en un archivo.

Considerando que el '\0' indica el final de una cadena y si cada una de tus cadenas contiene un numero arbitrario de '\0's la pregunta que viene a la mente es: ¿Como sabes cuando termina una y empieza otra?

Mejor publica la versión mas pequeña del programa para que alguien en los foros pueda comentar o sugerir una mejor aproximación.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com