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 - naderST

#211
En el código en el main cuando llamas a malloc() lo que hace es reservar memoria para una matriz de enteros de tamaño FILAS*COLUMNAS, pero lo tratas como si fuera un vector porque en C las matrices se representan en memoria como vectores.
#212
2. No necesariamente se debe usar puntero a puntero, esto solo es una manera de implementarlo.

3. Con un solo malloc lo puedes hacer porque en C las matrices se representan en memoria por filas de esta manera:

1 2 3
4 5 6

En memoria sería así:

1 2 3 4 5 6

1. En el código puedes ver como se reserva una matriz dinámica sin usar puntero a puntero, como se puede tratar como una fila y bueno cualquier duda avísame se me debieron escapar muchas cosas.


#include <stdio.h>
#include <stdlib.h>
#define FILAS 2
#define COLUMNAS 3

int matriz[FILAS][COLUMNAS] = { {1,2,3}, {4,5,6}};

int * matriz_dinamica;

/*
   imprimir tratando la matriz como vector
*/
void imprimir_vector(int vector[]){
   register int i;

   for(i=0;i<FILAS*COLUMNAS;i++)
       printf("%d ", vector[i]);
   printf("\n");
}

/*
   imprimir tratando la matriz como un puntero
*/
void imprimir_puntero(int * matriz){
   register int i;

   for(i=0;i<FILAS*COLUMNAS;i++)
       printf("%d ", matriz[i]);
   printf("\n");
}

int main()
{
   register int i,j;

   imprimir_vector(matriz);
   imprimir_puntero(matriz);

   int (*ptr_matriz)[COLUMNAS];    // Apuntador a una matriz

   matriz_dinamica = (int*)malloc(sizeof(int)*FILAS*COLUMNAS);

   ptr_matriz = matriz_dinamica;

   ptr_matriz[0][0] = 1;
   ptr_matriz[0][1] = 2;
   ptr_matriz[0][2] = 3;

   ptr_matriz[1][0] = 4;
   ptr_matriz[1][1] = 5;
   ptr_matriz[1][2] = 6;

   for(i=0;i<FILAS;i++){
       for(j=0;j<COLUMNAS;j++)
           printf("%d ", ptr_matriz[i][j]);
       printf("\n");
   }

   free(matriz_dinamica);

   return 0;
}


NOTA: Para las matrices el compilador debe saber el numero de columnas de la matriz, ya que cuando usas el operador [] se resuelve de la siguiente manera:


matriz[i][j] = matriz + i * COLUMNAS + j
#213
Obtienes el texto del edit tal como lo estás haciendo y luego se lo asignas al otro edit con la siguiente función:

SetDlgItemText
#214
A simple vista eso no hace nada. La razón te la dejo a ti.
#215
Recuerda que C es sensible a las mayúsculas y minúsculas y no es lo mismo decir Printf que printf.

Printf("Introduzca 3 numeros: ");
#216
Hay una función NO ESTÁNDAR llamada itoa() la puedes revisar aquí

http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/

Personalmente te recomiendo que hagas tu propia función itoa que sea estándar.

EDIT:

Aquí tienes un código en C++ que convierte de entero a string:

Código (cpp) [Seleccionar]
string itoa(int n){
string rtn;
for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
return rtn;
}
#217
Te invito a que investigues un poco sobre los temporizadores o timers y créeme que sabrás donde ponerlos.
#218
En ese caso no deberías usar Sleep sino un temporizador. En la API de Windows existe una función llamado SetTimer. Acá te dejo un link.

SetTimer
#219
Programación C/C++ / Re: try catch en c++ (dev c++)
27 Noviembre 2011, 19:21 PM
Investiga un poco sobre la librería estándar ctype.h como por ejemplo estas funciones:

isalpha()
isdigit()
#220
Programación C/C++ / Re: Empezando en C++
27 Noviembre 2011, 19:17 PM
Personalmente te recomiendo que empieces con C y no directamente con C++ porque si comprendes C ir a C++ va a ser mucho mas sencillo, pero es tu decisión. Te recomiendo un IDE gratuito llamado Code Blocks es muy bueno. Entre esos dos links me iría por este:

http://foro.elhacker.net/programacion_cc/curso_de_programacion_en_c-t224896.0.html