Bloque 7.6: Funciones y Memoria Dinamica

  Рет қаралды 23,431

Empieza A Programar

Empieza A Programar

Күн бұрын

Пікірлер: 38
@yogalidof.21
@yogalidof.21 3 жыл бұрын
Estupendo trabajo con estos videos. Muchas gracias por tu trabajo altruista. Deduzco que al declarar dos punteros para un mismo vector, la maquina lo interpreta como una multiplicación de los módulos de dos vectores con el mismo incio. En un eje de coordenadas sería el punto (0,0). De ello que se convierta en una matriz (un cuadrado).
@miquelgasull8404
@miquelgasull8404 9 жыл бұрын
Para evitar los warnings, he modicado la cabecera de la función, pues el valor devuelto es una dirección de memoria de "mat". int** reservar (int filas, int columnas). Con esto es suficiente para compilar
@frankjobs7113
@frankjobs7113 4 жыл бұрын
si efectivamente.. yo solucione eso usando codeblocks solo en este bloque. Seguramente falta algun parametro para q omita el error, y otra cosa q tb soluciono el problema es borrar el .exe q queda lockeado en el directorio.
@j7a7c2h7p
@j7a7c2h7p 3 жыл бұрын
Lo probaré.
@AndresDominguezMariscal
@AndresDominguezMariscal Жыл бұрын
Muchas gracias, me has salvado de horas de sufrimiento
@kevinender5409
@kevinender5409 8 жыл бұрын
me sirvió muchísimo !!! :) excelente canal
@sherpad01
@sherpad01 10 жыл бұрын
muchas gracias este vídeo me ha sido de gran ayuda ^^ sigue así
@DiosDeBastos
@DiosDeBastos 9 жыл бұрын
Buenas Emilio, ante todo muchas gracias por aportar tanto a que hayan algunos que puedan aprender a programar más facilmente, la verdad es que has hecho un trabajo muy grande, se hace muy fácil aprender con tu método. Bueno, me gustaría preguntarte lo mismo que están preguntando los demás para el bloque 7.6, y es que al dar los 3 warnings, he buscado en internet y lo único que veo es que los dá por que los punteros deben apuntar a una dirección de memoria, pero no se como arreglarlo para que no aparezcan los warnings, he probado algunas cosas de foros en inglés, pero mis conocimientos sobre programación se corresponden únicamente a los previos vídeos que has colgado en la lista de reproducción de C, así que, si tuvieses un momento para acalrarlo, seguramente para tí sea más fácil que para los que seguimos tus clases. Muchas gracias, encima por haber realizado éste vídeo un día festivo, el dia de navidad :)
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
itdriver Para serte sincero en su momento investigue alguna solucion a ese problema, pero no merece la pena indagar mucho mas en el tema. A mi en la universidad me enseñaron todo esto de la misma forma, apareciendo los warnings y no hubo ningun problema, y lo mismo pasa con varios libros. Al final, los warnings solo te estan diciendo que tengas algunas cosas presentes, personalmente no me gusta nada que aparezcan pero realmente C no es mas que un lenguaje con el que iniciarte en la logica de la programacion, todos estos problemas ya se encuentran mas que resueltos con otros lenguajes como Java o C++ y el 99,9% de las personas dan el salto a estos lenguajes u otros tras aprender C, por lo que no te preocupes en exceso de esos warnings y continua con tu aprendizaje. Un saludo.
@ignabelitzky
@ignabelitzky 9 жыл бұрын
itdriver El problema para mi esta en la funcion reservar, ya que esta pide que devuelva un entero y en realidad estas queriendo devolver lo que sea que tenes en mat (que para mi es una direccion de memoria) no se como solucionarlo todavia, espero pronto encontrar la solucion ya que a mi no me deja compilarlo ni siquiera por hacerlo utilizando gcc en linux
@tomasneiro1756
@tomasneiro1756 8 жыл бұрын
Me salvaste , muy buen vídeo te lo agradezco.
@daviz3981
@daviz3981 10 жыл бұрын
Al final que ejecutes la programa, sale 3 warning en color naranja, ¿que son?
@joaquinezequiel889
@joaquinezequiel889 2 жыл бұрын
Hola! Muchas gracias por sus videos. Tengo una consulta: como debería hacer si la matriz dinamica para la que quiero reservar memoria es de tipo double? la funcion reservar seguiria siendo de tipo int?
@alansalmeron2359
@alansalmeron2359 9 жыл бұрын
Si estoy guardando la dirección de memoria en m1, y m2, entonces al cambiar el contenido de esa dirección con la función introduce, cómo es que si le pongo ciertos valores a m1(que tiene la misma dirección que m2) no los sobreescribo al usar la función introduce de nuevo para meterle los valores a m2(que tiene la misma dirección que m1)???
@angelgonzalotrigocolorado6445
@angelgonzalotrigocolorado6445 8 жыл бұрын
Hola!, Gracias por los tutoriales. Son magnificos. Solo queria consultarte una duda del final del video. En este caso, al asignarse los valores de la matriz mat a m1 y m2, una vez el programa finaliza, ¿seria necesario/recomendable hacer un free para m1 y m2, y ademas, para mat?¿O no seria necesario?. Muchas gracias.
@jeronimomurcia4304
@jeronimomurcia4304 9 жыл бұрын
m1=(int**) reservar(filas, colum); m2=(int**) reservar(filas, colum); return (int) mat; uso linux y codeblocks de esta forma no da warnings
@anthonyvera9457
@anthonyvera9457 9 жыл бұрын
Jeronimo Murcia muchas gracias por esta solución, la verdad es que a mi no me compilaba antes pero luego hice lo que pusiste y me compiló sin errores en el dev. ya me estaba empezando a desesperar por la frustración. Buen aporte.
@agustinlyon8173
@agustinlyon8173 3 жыл бұрын
Pero saben el por qué de que de el warning??
@Randomize-md3bt
@Randomize-md3bt 3 жыл бұрын
Gracias
@juangarciacandon4963
@juangarciacandon4963 4 жыл бұрын
Muy buenos vídeos
@HorckunHarotTutoriales
@HorckunHarotTutoriales 7 жыл бұрын
Buenas, Una pregunta. ¿Por qué cuando le dices cuántas filas y columnas quieres debes dejarlo en el main y no en una función nueva? Esque quería ponerlo en una función nueva y no me leía las matrices. Gracias ;)
@denisabarca
@denisabarca 10 жыл бұрын
No es necesario colocar el "free"?
@agustinwanschelbaum8521
@agustinwanschelbaum8521 10 жыл бұрын
¿Porque te aparecen los warning naranjas despues de compilar el programa? A mi tambien me aparecen
@chrisposeed
@chrisposeed 10 жыл бұрын
porque el programa te tira los 3 warnigs?
@Guille5381
@Guille5381 9 жыл бұрын
El error es claro, la función devuelve un entero y ese entero lo asignas a un puntero, un grave error de concepto, al parecer tu compilador es muy generoso y no te crea mayores problemas como le ha sucedido a los demás.
@benjaminpicassoachaval4112
@benjaminpicassoachaval4112 2 жыл бұрын
Hola Guillermo. Como se solucionaria? me estoy volviendo loco y no encuentro solución! =)
@angelorellana111
@angelorellana111 7 жыл бұрын
tengo una duda, es que muchas veces he realizado ejercicios y me han compilado bien, pero a la hora de ejecutarlos por alguna razón deja de funcionar, y quisiera saber cual es la razón de ello?
@guerrerocelestial6875
@guerrerocelestial6875 11 жыл бұрын
me acabo de suscribir te vi en hacker.net buen canal
@carlossantaella139
@carlossantaella139 8 жыл бұрын
amigo por que no creastes los espacios con void???? (lo pregunto por que lo intente y no me salio) T-T #include #include #include void cambio(); void espacio(); void ingresar(); void print(); int main(){ char *palabra; char aux[50]; printf("escribe tu frace: "); fgets(aux,50,stdin); cambio(aux); espacio(palabra,aux); ingresar(palabra,aux); print(palabra); system("pause"); return 0; } void cambio(char sas[]){ int i,aux; for(i = 0 ; i < 50 && aux == 0 ; i++){ if(sas[i] == ' '){ sas[i] = '\0'; aux = 1; } } } void espacio(char *as,char sa[]){ as = (char*)malloc((strlen(sa)+1)*sizeof(char)); if(as == NULL){ printf("no se pudo guardar en memoria"); exit(3); } } void ingresar(char *as, char sa[]){ printf("ingrese su frace: "); fflush(stdin); fgets(as,(strlen(sa)+1),stdin); cambio(as); } void print(char *sasa){ printf("su frace es: %s ",sasa); }
@agustinlyon8173
@agustinlyon8173 3 жыл бұрын
Los warning se dan porque estas guardando un entero en un puntero no? Osea lo que te devuelven las funciones de reserva de memoria quiero decir, y eso no lo podemos hacer porque los punteros simplemente señalan direcciones de memoria, osea no guardan como tal datos en si. Estoy en lo correcto ? Para ver si he aprendido bien jajaja
@Alan-fu2vx
@Alan-fu2vx 9 жыл бұрын
Aca tienen lo que yo creo es una mejor funcion para inicializar matrices. pastebin.com/30iqrQsW Obviamente usa lógica de punteros que Emilio no enseña, pero les recomiendo que no se queden con lo que les dice un solo video, incluso uno tan bueno como los de Emilio. Tres minutos de busqueda en internet (si no saben ingles nose que hacen programando): stackoverflow.com/questions/4339201/c-how-to-pass-a-double-pointer-to-a-function
@phaus5815
@phaus5815 8 жыл бұрын
+Alan Randsom graciaaaas esa información me fue vital para mi parcial +10
@emilioortega9487
@emilioortega9487 8 жыл бұрын
cual es la diferencia con las dos funciones que inicializan con matrices? el cod que subiste tu con el del video (aparte de la cantidad de punteros) ? uno es mas rapido que el otro o que onda...
@Alan-fu2vx
@Alan-fu2vx 8 жыл бұрын
Uff casi ni me acordaba ya de C, es de hace un año el comentario y ya pasé a OOP hace mucho con Java. Pero básicamente es pasar la matriz que querés directamente al método donde la asignas, a traves de un puntero; en lugar de crear otra matriz en el método para luego asignar su espacio a la original. En realidad no se si es estrictamente más rapido ahora que lo pienso porque no se si C "crea" cosas ya que no es Object Oriented. Pero si creo que es más compacto.
@emilioortega9487
@emilioortega9487 8 жыл бұрын
Gracias por responder, amigo pero sigo sin entender muy bien, cual es la necesidad de utilizar un puntero triple? , donde dices que esa forma encuentras tu que es mejor no lo noto si practicamente se usan las mismas funciones y las mismas declaraciones solo que usas funciones void puntero triple y en el video funciones int con puntero doble XD
@Alan-fu2vx
@Alan-fu2vx 8 жыл бұрын
Por eso digo que ahora viendolo desde afuera (hace un año programé eso) no estoy seguro que sea más rápido (xD). Pero debe ser por preferencias, a mi me gusta más así porque es como más Object Oriented, creas algo y lo pasas a un método de inicialización. Para gustos colores supongo :P
@XKrIpTa
@XKrIpTa 9 жыл бұрын
olvidaste meter los free a m1,m2 y mat xD
Bloque 7.7: Estructuras Dinamicas y Ejemplo Sistema de Batallas
28:26
Empieza A Programar
Рет қаралды 31 М.
Bloque 7.1: ¿Que es la Memoria Dinamica?
17:56
Empieza A Programar
Рет қаралды 69 М.
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
Bloque 7.5: Matrices Dinamicas
16:02
Empieza A Programar
Рет қаралды 41 М.
Asignación dinámica de memoria en C - malloc, calloc y free
9:24
I made Tetris in C, this is what I learned
15:15
Austin Larsen
Рет қаралды 4,1 М.
Bloque 6.5: Punteros a Estructuras y Funciones con Estructuras
14:27
Empieza A Programar
Рет қаралды 96 М.
91. Programación en C++ || Punteros || Matriz dinámica
15:45
Programación ATS
Рет қаралды 151 М.
Programación en C - Memoria dinámica
21:35
Christian León
Рет қаралды 25 М.
Bloque 7.3: Calloc y Free con Vector Dinamico
13:48
Empieza A Programar
Рет қаралды 27 М.
Tutorial de C - 10. Memoria dinámica
8:02
makigas
Рет қаралды 27 М.
86. Programación en C++ || Punteros || Asignación dinámica de arreglos
10:52
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН