dudas a la hora de programar

Iniciado por Drewermerc, 9 Mayo 2014, 06:19 AM

0 Miembros y 2 Visitantes están viendo este tema.

Drewermerc

#10
hola rir3760.
bueno gracias por el consejo pero por ciertas cuestiones ahorita no puedo comprar un libro pero lo tendre en cuenta para mas adelante y bueno si ya me habia dado cuenta de ese error en la estructura por eso despues puse otro codigo el cual segun yo ya esta bien y es que queria que me dijeras si ya esta bien,.es este:


#include <stdio.h>
#include <stdlib.h>
struct datos
{
char *nombre;
int edad;
};
struct da
{
char *nom;
int ed;
}dd, *d;
int main()
{

struct datos uno;
uno.nombre = "hola amigo";
uno.edad = 12;
printf("%d", uno.edad);
printf("\n%s", uno.nombre);
d = &dd;
d->nom = "skfhkl";
printf("\n%s", d->nom);
printf("\n%d", uno.edad);
printf("\n%s\n", uno.nombre);
return 0;
}


bueno ya una cosa si es que no es mucha molestia pero cuando dices.
* En C las conversiones explicitas al utilizar malloc, calloc y realloc no son necesarias y no se recomiendan.
te refieres a que no haga esto

cuno = (char *)calloc(sizeof(char), sizeof(char));

si no que es realidad lo ponga asi.

cuno = (char *)calloc(sizeof(char), sizeof(char));

o me equivoco.


bueno muchas gracias por el codigo y los consejos y perdon si hice muchas preguntas  o no entendia algunas cosas.
saludos.
drewermerc.

rir3760

Los dos ejemplos que pones de calloc son idénticos.

Me refería a que en la sentencia:
cuno = (char *) calloc(sizeof(char), sizeof(char));
La conversión "(char *)" no es necesaria, ademas "sizeof(char)" siempre es igual a uno. Hay que cambiar esa llamada a:
cuno = calloc(1, 1);

De todos modos las llamadas a calloc resultan inútiles ya que lo siguiente que haces en el programa es utilizar realloc, para el caso mejor utilizar una sola llamada a función (a malloc).

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

Drewermerc

buen muchas gracias.
y bueno entonces ya sea que utilice solo malloc o realloc.
bueno ya por ultimo tratare de comprarme un libro nose si  sabes de algun libro que me recomiendes donde vengane stos temas de estructuras, sockets, manejo de archivos, memoria dinamica, threads y semafros.
bueno muchas gracias rir3760 perdon si cause varias molestias.


rir3760

Cita de: Drewermerc en 11 Mayo 2014, 20:27 PMnose si  sabes de algun libro que me recomiendes donde vengane stos temas de estructuras, sockets, manejo de archivos, memoria dinamica, threads y semafros.
Primero enfocate en aprende C estándar ya que esa es la base garantizada sin importar el compilador. Recomendaciones hay varias en la base de datos de los foros, solo es cuestión de utilizar el motor de búsqueda.

Después de eso ya puedes enfocarte en temas particulares del compilador/plataforma como sockets, threads, semaforos, etc.

Y por ultimo no es molestia. Cada uno aporta su granito de arena a la comunidad.

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

Drewermerc

bueno pues le segure poniendo mucho empeño para seguir aprendiendo mas.
bueno de nuevo muchas gracias.
nos vemos rir3760.
saludos.
drewermerc.