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!
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???
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 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
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 ->
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
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.
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!
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.
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?
¿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?
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
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!
Tío que bien explicas, mil gracias me suscribo
Felicidades, explicas muy bien y todo está muy clarito.
clarisimo como el agua cristalina me parese felicitaciones desde jujuy
Muchas Gracias!!! Super clara tu explicacion!!!
excelente video. Muchas gracias
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!
deberias ser mi profe! :) felicitaciones
grande chelin! exelente los tutorials...tenes la voz del gato gaudio jajaja
Gracias por la explicacion. saludos
Muchas gracias!! eres mi heroe :D!!
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???
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 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
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 ->
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
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.
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?
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!
buenisimo
bro por que en visual c ++ no me compila y en dev c++ si?
ahora si, gracias
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 !
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?
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
buen bueno,
si me podra ayudar con un programa que reserve un habitacion de u n hotel con estruc dinamica por fa
¿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));
te la rifas mas que mi profe
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