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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con el uso de malloc en char (C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con el uso de malloc en char (C)  (Leído 7,610 veces)
m4rkk0s

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Ayuda con el uso de malloc en char (C)
« en: 2 Julio 2012, 20:48 pm »

buenas estoy tratando de entender el uso de malloc

yo quiero almacenar una variable tipo char y almacenarla, y que la variable quede utilizable para otro dato y asi, luego cuando finalize.. quiero poder acceder y obtener todos los datos que se generaron...

encuentro ejemplos pero con malloc int...

espero poder explicarme bien...  :-\


En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #1 en: 2 Julio 2012, 20:50 pm »

No sé si te he entendido bien... ¿Lo que quieres es saber cómo reservar memoria dinámica en variables de tipo char?


En línea

m4rkk0s

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #2 en: 2 Julio 2012, 20:55 pm »

sisi osea... guardar los datos que voy obteniendo... para luego utilizarlos en un fprintf....

osea como es la sintaxis para los char ese es el problema... no se la sintaxis..

void * ptr = NULL;
   
    ptr = (char*)malloc(sizeof(1000));
    ptr = &nuevo_proyecto.miembro;


por ejemplo yo hago esto... pero no se ni lo que hago no entiendo y esto me da como resultado 1... y no es lo que quiero yo quiero que en ptr.. se almacene todo loq ue va saliendo de nuevo_proyecto.miembro
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #3 en: 2 Julio 2012, 20:59 pm »

Imagínate que tenemos las variables:

char *cadena1, *cadena2;

Le queremos reservar un solo espacio:

Código
  1. cadena1 = (char*) malloc (sizeof(char));

Ahora, vamos a reservarle 1000 espacios:

Código
  1. cadena2 = (char*) malloc (1000 * (sizeof(char));

¿Era eso?

Saludos.
En línea

m4rkk0s

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #4 en: 2 Julio 2012, 21:01 pm »

eso!!!! gracias mil gracias!!! ahora voy a ponerme a utilizar eso para ver si me sale... pero millones de gracias!!!!

En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #5 en: 2 Julio 2012, 21:03 pm »

De nada. Si tienes más dudas, pregunta  :D
En línea

m4rkk0s

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #6 en: 2 Julio 2012, 21:18 pm »

HOLA DE NUEVO

OTRA CONSULTITA.. .Y PARA MOSTARLO? EN EL FPRINTF =?

SOLO TENGO QUE PONER  EN ESE CASO   CADENA2? O TENGO QUE PONER CADENA2(1000); O ALGO POR EL ESTILO?

o deberia de usar un fread para leer primero lo que puse en la cadena y luego imprimirlo?


desde ya muchas rgacias y espero que entiendas lo que pongo! :D
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #7 en: 2 Julio 2012, 21:23 pm »

Una vez hayas reservado la memoria dinámica y le hayas dado unos valores a la variable, se la trata como a una cadena de caracteres normales.

Es decir, siguiendo el prototipo de fprintf:

int fprintf(FILE *stream, const char *formato, ...);

Debes poner solo "cadena2", sin el subíndice.

Saludos, y espero haber entendido la duda.
En línea

m4rkk0s

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #8 en: 2 Julio 2012, 21:45 pm »

primero que nada muchas gracias por tu ayuda!! muy copado!!! todavia no lo digiero completamente otod lo que me comentaste pero trankiloq eu lo voy a poner en practica
segundo me dijeron que hiciera un array
while (b!=0){
    printf("\n Ingrese un personal de la peticion: ");
    fflush(stdin);
    scanf ("%s",&nuevo_proyecto.miembro);

    printf("\n Ingrese el rol del personal: ");
    fflush(stdin);
    scanf ("%s",&nuevo_proyecto.miembrorol);

    printf (" quiere continuar agregando personal de %s\n  \nPresione 1 para agregar 0 para finalizar\n",&nuevo_proyecto.miembrorol);

    scanf("%d",&b);


osea un array con los valores que va generando el nuevo_proyecto_miembro... mmm como funciona el array char???? mi programacion en basica.. osea conozco array pero no como usar un array para almacenar char... si tenes alguna pagina de donde aprender... desde ya muchas gracias... si no conoces no importa seguire igualmente agradecido por la gran ayuda q eu me diste.. me ayudo a entender mucho..!!! gracias desde ya
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Ayuda con el uso de malloc en char (C)
« Respuesta #9 en: 2 Julio 2012, 21:56 pm »

Si con "almacenar char" te refieres a pedir los datos que entrarán en la cadena de caracteres, lo que has hecho está bien.

No obstante, no recomiendo pedir una cadena de caracteres con scanf, mejor que uses gets o fgets, ya que scanf coge solo hasta el primer espacio que le introduzcas.

Cada carácter que le vayas metiendo, uses la función que uses para introducir los datos (gets o fgets, scanf, como ya dije, mejor que no), se meterá en un espacio del array. Por ejemplo:

char cadena[20];
printf("Introduzca la cadena");
gets(cadena);

Salida por consola:

--> Introduzca la cadena
------> hola !

por lo tanto, en cadena quedaría así:

Código:
cadena[0] = 'h'
cadena[1] = 'o'
cadena[2] = 'l'
cadena[3] = 'a'
cadena[4] = ' ';
cadena[5] = '!'
cadena[6] = '\0'

cadena[6] tiene un '\0' porque así es más fácil de manipular la cadena (cuando profundices en usar funciones para manipular cadenas te darás cuenta). La función gets le añade el carácter automáticamente.

Aquí tienes un manual, tanto en formato html como en pdf: http://www.nachocabanes.com/c/

A mí me sirvió bastante ese.

¿Era eso?

Saludos.
« Última modificación: 2 Julio 2012, 22:19 pm por DickGumshoe » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con el uso de malloc
Programación C/C++
alexis33de 2 4,045 Último mensaje 21 Agosto 2010, 23:18 pm
por alexis33de
duda doble puntero char a matriz de char
Programación C/C++
neo_from_cs_matrix 3 6,265 Último mensaje 5 Septiembre 2011, 03:53 am
por rir3760
ERROR excepcion: char* = char* + n « 1 2 »
Programación C/C++
x64core 10 6,074 Último mensaje 21 Enero 2012, 20:20 pm
por Eternal Idol
Lectura de matríz de char como char** o DWORD*
Programación C/C++
david_BS 3 3,577 Último mensaje 20 Febrero 2012, 20:49 pm
por Eternal Idol
Ayuda en C. Unir char a char[] SOLUCIONADO
Programación C/C++
NeoB 5 5,616 Último mensaje 10 Abril 2012, 23:07 pm
por NeoB
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines