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


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 73
51  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 21 Mayo 2010, 21:40 pm
Gracias littlehorse. Sobre las recomendaciones, sólo necesito opiniones, porque aveces hay estándares los cuales permiten un mejor entendimiento del programa. Ahora bien, por ejemplo me gustaría ver algunos sources de grandes programas, para ver su organización y demás.

Conoces algún libro que trate sobre practicas sanas en C/C++? Aparte de las que estoy leyendo del libro de deitel&deitel?

EDIT: Existe alguna forma para saber si una puntero fue liberado correctamente con free()?
EDIT2: Creo que la forma sería que si utilizo el free(), entonces la información en mi puntero quedará en NULL.
EDIT3: En el caso que quiera manipular una gran cantidad de usuarios, en vez de un array de estructuras lo correcto sería utilizar una lista enlazada, verdad?
52  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 21 Mayo 2010, 21:29 pm
Se me ocurrió lo siguiente para no estar reservando memoria a cada instante:
Código
  1. int main(){
  2.  st_p *user;
  3.  
  4.  data_reserve(&user);
  5.  data_input(user);
  6.  
  7.  printf("Nombre : %s", user->name);
  8. }
  9.  
  10. void data_reserve(st_p **P){
  11.  (*P) = (st_p *)(malloc(sizeof(st_p)));
  12.  (*P)->name = (char *)(malloc(sizeof(char) * LIMIT));
  13.  (*P)->dir = (char *)(malloc(sizeof(char) * LIMIT));
  14.  (*P)->phone = (char *)(malloc(sizeof(char) * LIMIT));
  15. }
  16.  
  17. void data_input(st_p *P){
  18.  puts("Ingrese nombre");
  19.  fgets(P->name, LIMIT, stdin);
  20. }
53  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 21 Mayo 2010, 21:03 pm
Disculpas por el stdio.h olvidé copiarlo

Ahora bien, no me queda otra opción que la siguiente?

Código
  1. int main()
  2. {
  3.  stPersona *User;  
  4.  User = (stPersona *)(malloc(sizeof(stPersona)));
  5.  User->nom = (char *)(malloc(sizeof(char) * MAX_LIMIT));
  6.  
  7.  _ingreso(User);
  8.  printf("%s\n",User->nom);
  9.  
  10.  return 0;
  11. }
  12.  
  13. void _ingreso(stPersona *P)
  14. {
  15.  puts("Ingrese nombre>");
  16.  fgets(P->nom,MAX_LIMIT,stdin);
  17. }

Lo que quedaría destacar es que para manipular estructuras(en realidad en todos los casos creo), hay que reservar la memoria antes de llamar a una función(procedimiento en este caso)?
54  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 21 Mayo 2010, 17:03 pm
Miren el siguiente code:

Código
  1. #include <stdlib.h>
  2. #include <string.h>
  3.  
  4. #define MAX_LIMIT 50
  5.  
  6. struct Persona{
  7.  char *nom, *dom, *tel;
  8.  int edad;  
  9. };
  10.  
  11. typedef struct Persona stPersona;
  12.  
  13. void _ingreso(stPersona *);
  14. void _imprimir(stPersona *);
  15.  
  16. int main()
  17. {
  18.  stPersona *User;
  19.  //Aqui creo que deberia reservar el espacio para User
  20.  _ingreso(User);
  21.  _imprimir(User);
  22.  
  23.  return 0;
  24. }
  25.  
  26. void _ingreso(stPersona *stP)
  27. {
  28.  char *nom;
  29.  nom = (char *)(malloc((MAX_LIMIT)*sizeof(char)));
  30.  stP = (stPersona *)(malloc(sizeof(stPersona)));
  31.  stP->nom = (char *)(malloc((MAX_LIMIT)*sizeof(char)));
  32.  fgets(nom,MAX_LIMIT,stdin);
  33.  strcpy(stP->nom,nom);
  34. }
  35.  
  36. void _imprimir(stPersona *stP)
  37. {
  38.  puts("------SALIDA------");
  39.  puts(stP->nom);
  40. }

¿Por qué se produce un error de segmentación en la salida?

EDITADO : Si reservo espacio para User, y luego utilizo printf("%s") la salida es (null).
55  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 21 Mayo 2010, 03:19 am
Gracias por la aclaración, pero no me refería a eso.
56  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 21 Mayo 2010, 00:06 am
Exacto a eso último me refería.

OFFTOPIC : Para que no hallan creo que es lo correcto  :xD
57  Programación / Programación C/C++ / Re: [C] - Duda estructuras en: 20 Mayo 2010, 23:46 pm
Me refiero a las asignaciones:

Código
  1. //Suponemos la esctructura
  2. struct Ficha {
  3.  
  4. char Nombre[80];
  5. int  Num_unidades;
  6. int Precio_unidad;
  7. int Estado;   // 0 = moroso; 1 = atrasado; 2 = pagado
  8. };
  9. ...
  10. //Es esta la forma de asignacion?
  11. int num, int pre;
  12. Ficha F;
  13. scanf("%d",&num);
  14. scanf("%d",&pre);
  15. F.Num_Unidades = num;
  16. F.Precio_Unidad = pre;
  17. ...
  18. /* O lo correcto seria que en el scanf haga una asignación directa?*/
  19.  
58  Programación / Programación C/C++ / [C] - Duda estructuras en: 20 Mayo 2010, 23:32 pm
¿Cuál es el método utilizado en C para el ingreso de una estructura de datos? Me refiero a que si se deben leer las variables de la estructura por apartey luego asignarlas a los miembros de la esctructura... o bien, si se deben asignar directamente a cada miembro de la esctructura luego de un scanf().
59  Programación / Programación C/C++ / Re: arreglos en c en: 20 Mayo 2010, 20:37 pm
En realidad debería buscar sobre métodos de ordenación en general  :xD
60  Programación / Programación C/C++ / Re: cerr en: 20 Mayo 2010, 02:40 am
Tal cual aclaró littlehorse... hay una diferencia entre IDE y compilador.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 73
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines