Excelentes vídeos, antes de esto andaba perdido ahora un poco menos pero creo poder realizar mis tareas, gracias por realizar los vídeos, saludos y buena vibra!
Además de la facilidad para transmitir los conceptos y su implementación; es genial el acento y el lenguaje con el que te expresas. Creo que sos Argentino no? ajajaja Saludos y mil gracias por compartir estos videos que son de gran ayuda para todos!
uy no entiendo una parte, porque no utilizas un puntero generico para recibir el return de la funcion malloc, recuerdo que mencionaste que malloc retorna un void* y aca asignas el espacio de memoria a un puntero no generico.... please aclarame esa duda, gracias de antemano, excelentes tutos!
No entiendo mucho pero podrías probar a quitarle -> y poner solamente 'contacto.nombre' porque es una cadena de caracteres... si recuerdas, no necesitaba el asterisco y a lo mejor por eso tampoco es necesario poner ->
Hola una pregunta, como hago en caso de tener como dato un nombre, osea un dato char en vez de long por ejemplo, como asigno el nombre del contacto. GRacias
chelin cuando defino una estrcutura como hago para qeu el codeblock me muestre los campos asi como a ti a mi no se me despliaga ese menu cuando voy a escribir algo en un campo de la estructura ?
Hola Chelin!, una duda: intento asignar un nombre a un elemento de mi struct pero no me deja, hice lo siguiente: contacto1 -> nombre = "personax"; con datos de tipo int si funcionar pero no con cadenas, que puedo hacer???
Puedes evitar hacer conversión explicita siempre que estes en C sin importar si usas estructuras u otra cosa. Sin embargo, si quieres compatibilidad con C++ necesitas hacerlo siempre.
no te faltaria en esta sentencia (linea 11), contacto1=(contacto_t*)malloc(zizeof(contacto _t)); para hacer la conversion al tipo puntero, o esto es otra forma si me lo explicas, muchas gracias por los tutos estan muy buenos saludos.
Que es lo que hace el free en realidad? cuando imprimo los printf luego de hacer la liberación de memoria en las edades me tira cualquier valor, pero los teléfonos siguen con el dato correcto.
al referirte a memoria dinámica y estática queres decir ram y rom? xq pensé q el programa guardaba toda su información en la memoria ram, a no ser q la almacenes en el disco en un archivo de texto plano(pero este no es el caso), agradecería se me podes aclarar eso, gracias chau
¿Alguien sabe por qué en la línea 11: "contacto_t * contacto1=malloc(sizeof(contacto_t)); " no se hace un casting? ¿No sería necesario pues mallo devuelve un puntero void? Gracias!
Lo acabo de probar con otro ejemplo donde asigno lo que me da malloc a un puntero tipo int: "int * vector_convertido= malloc (4*sizeof(int));" y no me da problema. ¿Quiere decir entonces que el tipo puntero void lo podemos asignar a cualquier puntero sin hacer casting?
no. es memoria ram tambien. La diferencia es que suponte que tienes un vector con 5 lugares. Pero derrepente se llenaron los 5 lugares y nececitas agrandarlo. Que haces? te jodes. Entonces usas memoria dinamica, que es una memoria la cual puede cambiar el tamaño en tiempo de ejecucion. Se entiende?
Sos un autentico capo Chelin tanto antes en 2011 cuando subiste este video como ahora a finales 2018, te deseo lo mejor y mil gracias por todo
Tío que bien explicas, mil gracias me suscribo
Excelentes vídeos, antes de esto andaba perdido ahora un poco menos pero creo poder realizar mis tareas, gracias por realizar los vídeos, saludos y buena vibra!
Muchas Gracias!!! Super clara tu explicacion!!!
Felicidades, explicas muy bien y todo está muy clarito.
excelente video. Muchas gracias
clarisimo como el agua cristalina me parese felicitaciones desde jujuy
Gracias por la explicacion. saludos
deberias ser mi profe! :) felicitaciones
grande chelin! exelente los tutorials...tenes la voz del gato gaudio jajaja
Muchas gracias!! eres mi heroe :D!!
Además de la facilidad para transmitir los conceptos y su implementación; es genial el acento y el lenguaje con el que te expresas. Creo que sos Argentino no? ajajaja Saludos y mil gracias por compartir estos videos que son de gran ayuda para todos!
buenisimo
ahora si, gracias
uy no entiendo una parte, porque no utilizas un puntero generico para recibir el return de la funcion malloc, recuerdo que mencionaste que malloc retorna un void* y aca asignas el espacio de memoria a un puntero no generico.... please aclarame esa duda, gracias de antemano, excelentes tutos!
No entiendo mucho pero podrías probar a quitarle -> y poner solamente 'contacto.nombre' porque es una cadena de caracteres... si recuerdas, no necesitaba el asterisco y a lo mejor por eso tampoco es necesario poner ->
Hola una pregunta, como hago en caso de tener como dato un nombre, osea un dato char en vez de long por ejemplo, como asigno el nombre del contacto. GRacias
chelin cuando defino una estrcutura como hago para qeu el codeblock me muestre los campos asi como a ti a mi no se me despliaga ese menu cuando voy a escribir algo en un campo de la estructura ?
como haces si queires que se el usuario agregue tantos contactos como quiera y crear una opcion para que se muestre la lista de contactos?
Hola Chelin!, una duda: intento asignar un nombre a un elemento de mi struct pero no me deja, hice lo siguiente:
contacto1 -> nombre = "personax";
con datos de tipo int si funcionar pero no con cadenas, que puedo hacer???
por que a los punteros strutc no se le hace cast?
Puedes evitar hacer conversión explicita siempre que estes en C sin importar si usas estructuras u otra cosa. Sin embargo, si quieres compatibilidad con C++ necesitas hacerlo siempre.
no te faltaria en esta sentencia (linea 11), contacto1=(contacto_t*)malloc(zizeof(contacto _t)); para hacer la conversion al tipo puntero, o esto es otra forma si me lo explicas, muchas gracias por los tutos estan muy buenos saludos.
amigo ya supe como hacerle:
utiliza:
printf("Ingrese nombre: ");
fflush(stdin);
gets(contacto1->nombre);
con eso se arregla !
te la rifas mas que mi profe
bro por que en visual c ++ no me compila y en dev c++ si?
Que es lo que hace el free en realidad?
cuando imprimo los printf luego de hacer la liberación de memoria
en las edades me tira cualquier valor, pero los teléfonos siguen con el dato correcto.
al referirte a memoria dinámica y estática queres decir ram y rom? xq pensé q el programa guardaba toda su información en la memoria ram, a no ser q la almacenes en el disco en un archivo de texto plano(pero este no es el caso), agradecería se me podes aclarar eso, gracias chau
buen bueno,
si me podra ayudar con un programa que reserve un habitacion de u n hotel con estruc dinamica por fa
amigo como se haría un proble de estructuras dinamicas con los datos de 30 alumnos y sus notas, sin tener que repetir el codigo 30 veces
¿Alguien sabe por qué en la línea 11:
"contacto_t * contacto1=malloc(sizeof(contacto_t)); "
no se hace un casting? ¿No sería necesario pues mallo devuelve un puntero void? Gracias!
Lo acabo de probar con otro ejemplo donde asigno lo que me da malloc a un puntero tipo int: "int * vector_convertido= malloc (4*sizeof(int));"
y no me da problema. ¿Quiere decir entonces que el tipo puntero void lo podemos asignar a cualquier puntero sin hacer casting?
Creatividad_Nula hola en realidad tendria que ser asi :
contacto_t* contacto1 =(contacto_t*) malloc(sizeof(contacto_t));
no. es memoria ram tambien. La diferencia es que suponte que tienes un vector con 5 lugares. Pero derrepente se llenaron los 5 lugares y nececitas agrandarlo. Que haces? te jodes. Entonces usas memoria dinamica, que es una memoria la cual puede cambiar el tamaño en tiempo de ejecucion. Se entiende?
primero tienes que guardar el archivo con (.c). ejemp tut30.c, lo guardas y el code-block ya sabe que estas trabajando con c y te despliega los menus
Me pasa justo lo mismo y no te han respondido :S
mmm CodeBlocks :D