Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con un código...

Estas en el tema de Ayuda con un código... en el foro de C/C++ en Foros del Web. Saludo a todos los foristas, les agradecería me ayudaran con esta aplicación, pues se ejecuta perfectamente en Dev C++ pero no así en Visual C ...
  #1 (permalink)  
Antiguo 12/06/2008, 11:26
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con un código...

Saludo a todos los foristas, les agradecería me ayudaran con esta aplicación, pues se ejecuta perfectamente en Dev C++ pero no así en Visual C donde los flotantes ocupan espacios de estructuras contiguas.

Agradezco ayuda en este sentido...

#include <stdio.h>
#include <stdlib.h>

#define MAX 3

typedef struct{
char Nombre[10];
int Edad;
float Estatura;
}Datos;


void LlenaDatos(Datos **, int);

int main(int argc, char *argv[])
{
int i;

Datos *Lista[MAX];


LlenaDatos(Lista, MAX);

for(i = 0; i <= MAX-1; ++i){
printf("El nombre de este empleado es: %s\n", Lista[i]->Nombre);
printf("La edad de este empleado es: %d\n", Lista[i]->Edad);
printf("La estatura de este empleado es: %.2f\n", Lista[i]->Estatura);
}
system("pause");
return 0;
}

void LlenaDatos(Datos* Personal[], int Cantidad){
int i;

for(i = 0; i <= Cantidad - 1; i++){

Personal[i] = malloc(sizeof(Datos));

printf("Entre el nombre: ");
scanf("%s", Personal[i]->Nombre);
printf("Entre la edad: ");
scanf("%d", &Personal[i]->Edad);
printf("Entre la estatura: ");
scanf("%f", &Personal[i]->Estatura);
}
printf("\n");
}

Gracias adelantadas...
  #2 (permalink)  
Antiguo 12/06/2008, 18:10
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: Ayuda con un código...

Intenta:

Código:
Persona[i] = (Datos *)malloc(sizeof(Datos));
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #3 (permalink)  
Antiguo 12/06/2008, 18:11
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: Ayuda con un código...

Tambien valida que char Nombre[] tenga siempre al final '\0' para que no se desborde la variable
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #4 (permalink)  
Antiguo 13/06/2008, 06:43
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con un código...

Ante todo gracias por tu atención, ya eso lo probé y me sigue dando problemas con la gestión de memoria, el flotante se ubica en el lugar donde debería salir el nombre de la estructura contigua, si elimino el valor flotante todo se ejecuta perfectamente, es el flotante el problema, los valores de las cadenas son menores que su capacidad por lo que el \0 tiene su espacio al final...
Reitero que el problema se me presenta en Visual C, con Dev C++ no me ocurre.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:05.