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).
@miquelgasull84049 жыл бұрын
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
@frankjobs71134 жыл бұрын
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.
@j7a7c2h7p3 жыл бұрын
Lo probaré.
@AndresDominguezMariscal Жыл бұрын
Muchas gracias, me has salvado de horas de sufrimiento
@kevinender54098 жыл бұрын
me sirvió muchísimo !!! :) excelente canal
@sherpad0110 жыл бұрын
muchas gracias este vídeo me ha sido de gran ayuda ^^ sigue así
@DiosDeBastos9 жыл бұрын
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 :)
@EmpiezaAProgramar9 жыл бұрын
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.
@ignabelitzky9 жыл бұрын
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
@tomasneiro17568 жыл бұрын
Me salvaste , muy buen vídeo te lo agradezco.
@daviz398110 жыл бұрын
Al final que ejecutes la programa, sale 3 warning en color naranja, ¿que son?
@joaquinezequiel8892 жыл бұрын
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?
@alansalmeron23599 жыл бұрын
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)???
@angelgonzalotrigocolorado64458 жыл бұрын
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.
@jeronimomurcia43049 жыл бұрын
m1=(int**) reservar(filas, colum); m2=(int**) reservar(filas, colum); return (int) mat; uso linux y codeblocks de esta forma no da warnings
@anthonyvera94579 жыл бұрын
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.
@agustinlyon81733 жыл бұрын
Pero saben el por qué de que de el warning??
@Randomize-md3bt3 жыл бұрын
Gracias
@juangarciacandon49634 жыл бұрын
Muy buenos vídeos
@HorckunHarotTutoriales7 жыл бұрын
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 ;)
@denisabarca10 жыл бұрын
No es necesario colocar el "free"?
@agustinwanschelbaum852110 жыл бұрын
¿Porque te aparecen los warning naranjas despues de compilar el programa? A mi tambien me aparecen
@chrisposeed10 жыл бұрын
porque el programa te tira los 3 warnigs?
@Guille53819 жыл бұрын
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.
@benjaminpicassoachaval41122 жыл бұрын
Hola Guillermo. Como se solucionaria? me estoy volviendo loco y no encuentro solución! =)
@angelorellana1117 жыл бұрын
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?
@guerrerocelestial687511 жыл бұрын
me acabo de suscribir te vi en hacker.net buen canal
@carlossantaella1398 жыл бұрын
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); }
@agustinlyon81733 жыл бұрын
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-fu2vx9 жыл бұрын
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
@phaus58158 жыл бұрын
+Alan Randsom graciaaaas esa información me fue vital para mi parcial +10
@emilioortega94878 жыл бұрын
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-fu2vx8 жыл бұрын
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.
@emilioortega94878 жыл бұрын
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-fu2vx8 жыл бұрын
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