se entiende, pero veo que para algo hay dos explicaciones, primero cuando se esta asignando con pt= se puede decir "un puntero 'almacena la dirección' en memoria a una variable", lo que al mismo tiempo puede explicarse así (al apuntar) pt: "un puntero 'es una dirección' a un valor en memoria dinámica o estática" y debemos apuntarlo con *pt" Edito: Termino de ver el video, gracias por darle una ejemplificación de uso, me quedo bastante claro, aunque estaría bueno practicar todas esas funciones que las entiendo al leerlas pero me gusta la técnica de listas y estaría bueno robarla :D Esta bueno porque no recorres la lista para agregar al final si no que pones al principio y me parece muy rapido.
Hola te hago una consulta que puede ser muy tonta pero es que no lo se, porque despues del int pones un *, significa que la funcion va a devolver un valor apuntado por un puntero???
Hola alejo, no hay consultas tontas. Lo que si no comprendo del todo la misma. Te explico esto Int * num = funcion() quiere decir que función retorna un puntero. Otro ej int * valor, quiere decir que declaró un puntero. Te pongo estos 2 ejemplos, sin recordar que ejemplos utilice en ese video, seguramente estamos trabajando con memoria dinámica, si me pones el ejemplo te puedo contestar mejor, saludos.
@@YouTics la pregunta fue confusa, me quise referir a int* función(){}; que significa ese int* anterior a la función?. En el vídeo aparece cuando trabajamos con las funciones, fuera del Main
@@alejocorrea5310 la declaración de la función fuera y arriba de la función main se llama prototipado. Se utiliza para informar al main cuales son las funciones que se van a usar en ese archivo. Con respecto a la función int * funcion () es un función que retorna un puntero a entero, saludos
@@YouTics Capaz es facil, pero para resolver el ejercicio que me dijeron a mi no esta facil. Tengo que arreglar este error, y tengo que usar strcpy, podria solucionarlo utilizando p[0]=a pero no me lo permiten...
Hola tengo una hice esto y al final me da error Void metodo (lista *lista )//prototipo Main { Lista *miLista = new Lista(); Método(&miLista);//tira error aquí }
Estas mezclando programación orientada a objetos. Este tutorial es de programación estructurada y memoria dinámica. Acá tienes que usar malloc. Además, cuando escribes (lista *lista) nunca puedes llamar a una variable como el tipo de dato, es como si hiciera algo así (int *int) Saludos
@@JoseCastro-ms4bo entonces, no podes tener un puntero a un objeto. Porque un objeto ya es memoria dinámica. Trabajando con objetos puedes hacerlo directamente instanciando un objeto lista. saludos
Hola Álvaro, gracias por el mensaje. He subido todo lo que tengo, el tema es que me tengo que fijar si esta ordenado. Fijate en el canal en las listas. Creo que esta todo junto, saludos
como se resolvería el siguiente ejercicio... colocar un numero como puntero, pedirle al usuario otro numero para hacer una operacion como por ejemplo, una suma. luego cambiar el resultado de la operacion elegida en lugar donde estaba el numero puntero
Cuando tu trabajas con memoria dinámica, es decir, creas nodos y los enlazas a una listas en tiempo de ejecución, estas trabajando con punteros a una estructura (*nodo), si quieres modificar esos nodos que son punteros, la única forma que existe para modificarlos es con punteros dobles. En resumen, la existencia de punteros dobles se apoya en las necesidades de la memoria dinámica, necesidades de eliminar nodos, ordenar, modificar, saludos
@@YouTics aabrahamyairr@gmail.com pues la última parte XD , perdón por molestar. Pero podrías poner el código con link de mega en la descripción para los que quieran analizarlo XD
Marcos, no importa la función, acá estamos explicando el pasaje de parámetros, en una de las funciones recibes un número lo modificas y lo retorno. En la otra función recibo un puntero a un número y no necesito retornar porque trabajo con referencias, es eso, saludos
Me aclaraste tres semanas de dudas.
Mil gracias.
sos un crack, me gusta la forma en al que explicas!!
Me has salvado la vida, no daba una y el error estaba en los paréntesis. Muchísimas gracias! 💐🌼🌻🌸
Muchas gracias, buena explicación, ya había buscado en varios lugares y no encontraba algo que me quedara claro, con respecto al tema.
Me encanta como explicas los videos, segui asi, y muchas gracias por el contenido me ayudo mucho besos desde uruguay
Gracias por tu mensaje, a cuidarse mucho y saludos desde Argentina
me ayudo a cerrar el tema de punteros dobles. año 2021 muchas gracias!
Muchas gracias, me sirvió mucho el vídeo, justo empece con arboles y me estaba frustrando porque no entendía bien el ** pasado por parámetros
Muy clara tu explicación, muchas gracias!
Hola, de los cursos de lenguaje C que hay en tu canal, cual me recomiendas, gracias saludos
@@greenpanadero6591 busca en las listas de reproducción qué ahi están ordenados por temas y complejidad, son todas clases grabadas
genial video, me ha servido para la carrera
Excelente Profe!
Gracias profe, me sirvio mucho!
se entiende, pero veo que para algo hay dos explicaciones, primero cuando se esta asignando con pt= se puede decir "un puntero 'almacena la dirección' en memoria a una variable", lo que al mismo tiempo puede explicarse así (al apuntar) pt: "un puntero 'es una dirección' a un valor en memoria dinámica o estática" y debemos apuntarlo con *pt"
Edito:
Termino de ver el video, gracias por darle una ejemplificación de uso, me quedo bastante claro, aunque estaría bueno practicar todas esas funciones que las entiendo al leerlas pero me gusta la técnica de listas y estaría bueno robarla :D
Esta bueno porque no recorres la lista para agregar al final si no que pones al principio y me parece muy rapido.
Hola te hago una consulta que puede ser muy tonta pero es que no lo se, porque despues del int pones un *, significa que la funcion va a devolver un valor apuntado por un puntero???
Hola alejo, no hay consultas tontas. Lo que si no comprendo del todo la misma. Te explico esto Int * num = funcion() quiere decir que función retorna un puntero. Otro ej int * valor, quiere decir que declaró un puntero. Te pongo estos 2 ejemplos, sin recordar que ejemplos utilice en ese video, seguramente estamos trabajando con memoria dinámica, si me pones el ejemplo te puedo contestar mejor, saludos.
@@YouTics la pregunta fue confusa, me quise referir a int* función(){}; que significa ese int* anterior a la función?. En el vídeo aparece cuando trabajamos con las funciones, fuera del Main
@@alejocorrea5310 la declaración de la función fuera y arriba de la función main se llama prototipado. Se utiliza para informar al main cuales son las funciones que se van a usar en ese archivo.
Con respecto a la función int * funcion () es un función que retorna un puntero a entero, saludos
Hiciste un quilombo hermoso con tantas direcciones de memoria y no se cuanto. Me voy mas perdido de lo que vine
Ja ja ja ja ja, dale tiempo y tranquilidad, no son conceptos fáciles de comprender al principio, saludos
@@YouTics
#include
using namespace std;
#include
#include
typedef char *PtrChar;
typedef PtrChar *PtrPtrChar;
PtrPtrChar copia(PtrChar a, PtrChar b) {
PtrPtrChar p = (PtrPtrChar) malloc(sizeof(PtrChar) * 2);
strcpy(p[0], a);
strcpy(p[1], b);
return p;
}
int main()
{
PtrPtrChar mc = copia( "Novedades", "Mayormente" );
PtrPtrChar hny = copia( "Similaridad", "Algunas veces" );
cout
@@YouTics Capaz es facil, pero para resolver el ejercicio que me dijeron a mi no esta facil. Tengo que arreglar este error, y tengo que usar strcpy, podria solucionarlo utilizando p[0]=a pero no me lo permiten...
@@papopodrido5930 tienes un error aqui: cout
@@YouTics si, ese error ya lo corregi. Pero el error es otro!
le bajo la velocidad jaja buen video
Hola tengo una hice esto y al final me da error
Void metodo (lista *lista )//prototipo
Main {
Lista *miLista = new Lista();
Método(&miLista);//tira error aquí
}
Estas mezclando programación orientada a objetos. Este tutorial es de programación estructurada y memoria dinámica. Acá tienes que usar malloc. Además, cuando escribes (lista *lista) nunca puedes llamar a una variable como el tipo de dato, es como si hiciera algo así (int *int) Saludos
@@YouTics lo estaba haciendo en c++
@@JoseCastro-ms4bo entonces, no podes tener un puntero a un objeto. Porque un objeto ya es memoria dinámica. Trabajando con objetos puedes hacerlo directamente instanciando un objeto lista. saludos
No subiras todas tus clases? Faltan algunas en el curso de C, es una pena porque te entiendo mucho como explicas!
Hola Álvaro, gracias por el mensaje. He subido todo lo que tengo, el tema es que me tengo que fijar si esta ordenado. Fijate en el canal en las listas. Creo que esta todo junto, saludos
@@YouTics Ya lo vi.no estan en listas de reproduccion,pero si en el canal.Muchas gracias me comia la cabeza este tema de punteros dobles.
Podrías pasar el código porfa...y si tienes vídeos con nodos te lo agradecería bastante gracias
como se resolvería el siguiente ejercicio... colocar un numero como puntero, pedirle al usuario otro numero para hacer una operacion como por ejemplo, una suma. luego cambiar el resultado de la operacion elegida en lugar donde estaba el numero puntero
Hola como se llama ese programa.
saludos
Codeblocks
Yo aún no comprendo el proposito o para que serviria hacer esto.
Cuando tu trabajas con memoria dinámica, es decir, creas nodos y los enlazas a una listas en tiempo de ejecución, estas trabajando con punteros a una estructura (*nodo), si quieres modificar esos nodos que son punteros, la única forma que existe para modificarlos es con punteros dobles. En resumen, la existencia de punteros dobles se apoya en las necesidades de la memoria dinámica, necesidades de eliminar nodos, ordenar, modificar, saludos
Excelente!
Gracias Rubén, saludos
tremendo video, falta practica nada mas
kpo
;)
Regala el Código XD
Pasame un mail y te lo envío, decime que es lo que necesitas, saludos
@@YouTics aabrahamyairr@gmail.com pues la última parte XD , perdón por molestar.
Pero podrías poner el código con link de mega en la descripción para los que quieran analizarlo XD
Mucha Redundancia ! y demas creas una funcion (int num) y dentro pides otra vez num??? para que??
Marcos, no importa la función, acá estamos explicando el pasaje de parámetros, en una de las funciones recibes un número lo modificas y lo retorno. En la otra función recibo un puntero a un número y no necesito retornar porque trabajo con referencias, es eso, saludos