Una cosa: en C, a diferencia de C++, no es necesario hacer el cast en malloc pues infiere el tipo de dato y hace el cast solo. C++ es más restrictivo y obliga a ponerlo.
Hacer un cast es convertir el tipo de una variable del original a otro (ej: convertir un int a float). En este caso el puntero void que nos da de salida la función malloc lo convierte a un puntero float. He estado siguiendo todo el tutorial para refrescar C y juraría que no lo ha explicado, se le debe haber pasado.
Después de buscar información de como usar la voz online de Google para reproducir texto, solo he encontrado información de realizarlo en Android Studio. Quiero hacerlo en PC, ¿Sabes si hay alguna librería en C?
Me acabo de enterar según Google que si no haces un salto de línea, si no pones un fflush no se imprime. Supongo (supongo) que el printf que hago antes del scanf se imprime porque se tiene que vaciar el buffer para cambiar de stdout a stdin. Ni p**a idea, vamos.
oye makigas, en un video tuyo escuche algo que en vez de usar muchos if o switch dijiste que se podrian hacer funciones a punteros, creo que esto lo dijiste cuando programaste el chip 8, donde tenias el switch infernal, puedes hacer un video de eso :(?
En realidad hice uno sobre eso en mi antigua serie sobre C. Si finalmente hago una serie actualizada de C "intermedia" o "avanzada" lo haré, pero no lo quería meter en un tutorial de nivel "básico". Un saludo.
new y delete son palabras clave en C++, que sí tiene más integrada la memoria dinámica que C. Si compilas contra un compilador de C++ podrás usar esas palabras clave; si sólo compilas contra un compilador de C, no te dejará.
No es lo mismo void que void*. void efectivamente es no devolver nada, pero si una función devuelve "void puntero", lo que devuelve es un puntero a void, que se suele usar para tratar con punteros sin tipar. Es devolver una dirección de memoria en bruto, pero no puede usarse si no se castea. Como el agua de jackie chan, castea un void* a char*, y será char*; castea un void* a int*, y será int*.
Está buenísimo como explicás. Voy a recomendar el canal en la facultad.
Saludos desde Argentina!
Una cosa: en C, a diferencia de C++, no es necesario hacer el cast en malloc pues infiere el tipo de dato y hace el cast solo. C++ es más restrictivo y obliga a ponerlo.
Excelente serie de videos, todos bien explicados y muy concisos.
Me ayudaron mucho a entender los conceptos de manera más fácil y rápida
Quedaria bueno una segunda parte de donde se hable de las librerias estaticas y dinamicas
3:51 Alguien me puede decir a qué se refiere con hacer un cast?
Hacer un cast es convertir el tipo de una variable del original a otro (ej: convertir un int a float). En este caso el puntero void que nos da de salida la función malloc lo convierte a un puntero float. He estado siguiendo todo el tutorial para refrescar C y juraría que no lo ha explicado, se le debe haber pasado.
@@Umbra2310 Si, efectivamente se le ha pasado. Gracias por tu respuesta :)
Después de buscar información de como usar la voz online de Google para reproducir texto, solo he encontrado información de realizarlo en Android Studio.
Quiero hacerlo en PC, ¿Sabes si hay alguna librería en C?
cuando hace un printf sin
al final en la siguiente linea no se tendria que poner "fflush(stdout);"?
Me acabo de enterar según Google que si no haces un salto de línea, si no pones un fflush no se imprime. Supongo (supongo) que el printf que hago antes del scanf se imprime porque se tiene que vaciar el buffer para cambiar de stdout a stdin. Ni p**a idea, vamos.
Me estoy viendo tus videos sobre C en maratón (cual serie de Netflix) :O
oye makigas, en un video tuyo escuche algo que en vez de usar muchos if o switch dijiste que se podrian hacer funciones a punteros, creo que esto lo dijiste cuando programaste el chip 8, donde tenias el switch infernal, puedes hacer un video de eso :(?
En realidad hice uno sobre eso en mi antigua serie sobre C. Si finalmente hago una serie actualizada de C "intermedia" o "avanzada" lo haré, pero no lo quería meter en un tutorial de nivel "básico". Un saludo.
cuando utilizar malloc vs new?
es decir:
int* puntero = new int en vez de malloc
delete[] puntero en vez de free(puntero)
new y delete son palabras clave en C++, que sí tiene más integrada la memoria dinámica que C. Si compilas contra un compilador de C++ podrás usar esas palabras clave; si sólo compilas contra un compilador de C, no te dejará.
Me sorprende que void pueda castearse, que una función devuelva void no equivalea no devolver nada? Gracias por el tutorial, muy bien explicado todo!
No es lo mismo void que void*. void efectivamente es no devolver nada, pero si una función devuelve "void puntero", lo que devuelve es un puntero a void, que se suele usar para tratar con punteros sin tipar. Es devolver una dirección de memoria en bruto, pero no puede usarse si no se castea. Como el agua de jackie chan, castea un void* a char*, y será char*; castea un void* a int*, y será int*.
¿como se llama el programa que estas usando?
Code Blocks
gracias ;)