Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Locura_23

#21
Programación C/C++ / Re: Devolver string con int
4 Septiembre 2021, 16:51 PM
Cuidado con las variables globales, no es recomendable su uso en general. Las variables x e y pueden estar declaradas en main sin problemas... 
#22
Hola te dejo una idea
Primeramente porque son distintas funciones y pueden pedir distintas cosas como parametros.
Pero la razon principal es que un arreglo de caracteres es en realidad una variable de tipo puntero a la primera direccion donde empieza ese arreglo (puntero a char)
gets() pide como parametro un puntero a char, y como ya "nombre" (el arreglo en tu estructura) es una variable de tipo puntero, (ya es una direccion de memoria per se), no necesitas colocarle los operadores de punteros, estos son de indireccion (el *) o direccion(el &).

En cambio con los demas campos (datos de tu estructura) cambia la cosa, como no son arreglos o variables de tipo puntero, necesitas usar el operador de direccion (&) para proveerle a la funcion scanf, la direccion de estas variables. Así scanf puede guardar el valor en sus respectivas variables.
#23
Genial, gracias por tu respuesta Serapis  :)
#24
Buenas gente, no sé si esta será la categoría más adecuada...

Estoy aprendiendo lo que es la interfaz de Win32 en C para programar cosas simples que me surgan. Estoy leyendo el libro "Programming Windows 5th edition " de Charles Petzold . El tema es que es un libro del año 98. De momento los ejemplos de codigo me funcionan perfecto.
Creen que no habría problema al aprender con este libro? Conocen algun otro más que sea accesible en la red?

gracias, saludos
#25
Cita de: Randomize en 23 Agosto 2021, 20:06 PM
https://www.casadellibro.com/libro-la-biblia-de-unix-anaya-multimedia/9788441519701/1068788


Cuando te hagas tu propio minix no lo llames linux ¿OK?

jaja ni de broma estoy a ese nivel pero me interesa mucho empezar en el mundo de Unix y Linux. Le voy a hechar una ojeada a ese libro, gracias por tu aporte

Cita de: BloodSharp en 23 Agosto 2021, 20:50 PM
Mejor que lo llame Freax... :silbar:

Aunque nunca llegué a utilizar el compilador pero si la máquina virtual en algunos proyectos, podrías probar Lua el cual tiene un compilador para compilar al bytecode de la máquina virtual que use Lua...
Por cierto el lenguaje padre con el que se compila Lua es C por lo que podrías probar scripts o incluso compilar el compilador y simular un prompt en C/C++ que ejecute y cargue los archivos compilados de Lua o sus scripts.

B#

Ya veo es una buena idea para poder investigar, gracias por tu aporte
#26
Hola a todos. Bueno la cuestión es la siguiente, para un proyecto final una materia de programación en C ( donde vemos lo que es programación estructurada incluyendo estructuras dinámicas), tengo ganas de hacer algún programa que simule ser un sistema operativo, algo que sea simple pero que vaya por ese lado . He visto también en algún libro un ejercicio para crear un "lenguaje máquina" propio y luego diseñar una especie de compilador, pero no trata muy a fondo el tema...

Saben de material que trate sobre esta clase de proyectos especificamente para obtener alguna idea ?

gracias, saludos.
#27
Ohh ya veo, con que era eso... Osea en asignarMemoria estaba ampliando el bloque de memoria del puntero al puntero de pArreglo. En vez de ampliar el bloque de memoria del puntero a la direccion de pArreglo. Y luego con ese error, en copiarValores asignaba valores en la memoria reservada en el lugar erroneo.
En resumen no estaba guardando nada en pArreglo sino en otra direccion de memoria... Por eso me mostraba siempre cero en main, pues mostraba el equivalente a NULL...

En verdad me ayudaste mucho, muchas gracias por tu tiempo Mafus
#28
Si no lo encuentra es porque no lo tienes instalado, tan simple como eso.
Tal como te dijeron, fijate de descargar el paquete que  incluye el compilador.
Luego para asegurarte, una vez en Codeblocks, anda hacia "settings" , luego "compiler" ,
luego en "global compiler settings" apreta "reset defaults".
Nota: también asegurate de que utilizas la version ya sea de 32 bits o 64 bits según tu sistema.
#29
Hola genios. Bueno resulta que estoy practicando el manejo de punteros y arreglos, pero estoy teniendo problemas: no se muestran los valores desde main. Alguien puede notar algo? Si nadie se quiere molestar lo entiendo porque puede parecer complejo... gracias saludos.


//la funcion crearArreglo maneja la creacion del arreglo, primero guarda
//la memoria necesaria y luego le copia los valores.
//crearArreglo recibe un puntero a entero y la dimension.
//Luego le pasa el puntero a puntero
//a otra funcion asignarMemoria. Luego le pasa el puntero a puntero
//a copiarValores, donde se asignan numeros random.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void crearArreglo(int**punteroApuntero, int dim);
void asignarMemoria(int***punteroTriple, int dim );
void copiarValores(int ***punteroTriple, int dim);

int main()
{
   int *pArreglo = NULL;
   int dim = 0; //dimension

   printf("\nIngrese la dimension del arreglo: ");
   scanf("%d",&dim);

   srand(time(NULL)); //para obtener valores random en copiarValores()
   crearArreglo(&pArreglo,dim); //se le pasa el puntero a puntero y la dimension

   printf("\nPrimer elemento desde main: %d\n",*pArreglo); //printea un valor erroneo

   return 0;

}// fin main

void crearArreglo(int **punteroApuntero, int dim)
{
   asignarMemoria(&punteroApuntero, dim);

   copiarValores(&punteroApuntero, dim);

}// fin funcion crearArreglo

void asignarMemoria(int ***punteroTriple, int dim)
{
   (**punteroTriple) = (int *) malloc ( dim * sizeof(int) );

   if( (**punteroTriple) == NULL )
   {
       printf("\nError en asignacion de memoria.\n");
       exit(EXIT_FAILURE);
   }//fin if
   else
   {
       printf("\nAsignacion de memoria exitosa.\n");

   } // fin else

} // fin funcion asignarMemoria

void copiarValores(int ***punteroTriple, int dim)
{
   int i = 0;

   while( i < dim )
   {
       (***punteroTriple) = rand() % 10;
       printf("Elemento %d : %d\n",i,***punteroTriple);
       system("pause");
       (**punteroTriple)++; //dudas aca
       i++;
   }// fin while

} // fin funcion copiarValores
#30
Programación C/C++ / Re: Ayuda C++
20 Agosto 2021, 02:13 AM
Nota: la funcion Sleep() recibe como parámetro la cantidad de tiempo a "dormir" en milisegundos, si queres dormir 1 segundo le mandas 1000 como parámetro.
Ejemplo:

Código (cpp) [Seleccionar]


#include <iostream>
#include <windows.h>

int main()
{
    std::cout << "3\n\n";
    Sleep(1000);

    std::cout << "2\n\n";
    Sleep(1000);

    std::cout << "1\n\n";
    Sleep(1000);

    std::cout << "Boom!\n" << std::endl;

    return 0;

} // fin main