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

#11
Programación C/C++ / Re: Soy nuevo en c
1 Julio 2012, 19:12 PM
muy buena tu explicación final. aunque algunos compiladores modernos usan vla, osea los vectores que consideramos estáticos son implícitamente dinámicos.
http://en.wikipedia.org/wiki/Variable-length_array
http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html
#12
yo también tengo y uso el MSVC++ 6, pero para programas básicos que no dependan demasiado del sistema porque no incluye las modificaciones o agregados a la api en su sdk, y no para versiones modernas de windows porque su sdk está desactualizada y obsoleta en una consideración más general. Yo lo uso igualmente, pero si necesito hacer una aplicación para windows usaría Visual Studio 2010.
Si querés programar para windows te conviene instalar de la versión 2005 en adelante para estar actualizado.
#13

El ejemplo que te mostraron está muy bien. Pero para que entiendas el concepto de doble puntero te muestro este código de ejemplo que había publicado hace un tiempo aquí:
http://foro.elhacker.net/programacion_cc/manipulacion_de_punteros_ejemplo_con_float-t358223.0.html

Código (cpp) [Seleccionar]
float vec1[5]={ 0.5f, 0.2f, 0.22f, 0.01f, 0.0f };
float vec2[5]={ 0.5f, 0.2f, 0.22f, 0.01f, 0.0f };
float vec3[5]={ 0.5f, 0.2f, 0.22f, 0.01f, 0.0f };
float* pf1[3]; //vector de punteros a vectores de float
pf1[0]=&vec1[0];
pf1[1]=&vec2[0];
pf1[2]=&vec3[0];

float** ppf1;
ppf1 = (float**)&pf1;//se le asigna la direccion de un vector de punteros a vectores de float


osea, el concepto de que un doble puntero es un puntero el cual apunta a otro puntero. y dicho puntero debe apuntar a una región
de memoria asignada en el programa. si usás asignación dinámica, entonces si tenés que hacer como en el ejemplo que te mostraron.

#14
Cita de: RHL en 16 Junio 2012, 19:19 PM
gracias a todos, los agradece

si querías incrementar el valor de un número sería como ya dijeron anteriormente:

int main()
{
int num = 6;
DWORD* p = (DWORD*)#
*p = (*p)+2;
printf("%x\n", p);
printf("%d\n", *p);
system("pause");
return 0;
}


pero yo había entendido que querías incrementar el puntero en dos bytes, lo cual sería algo así (se muestran ambos casos según el tipo de puntero) :


int main()
{
unsigned long num = 16;
DWORD* p = (DWORD*)#
// p = p+2;//-----------------------> incrementa 2*4 bytes = 8 bytes
printf("%x\n", p);
printf("%x\n", p+2);
printf("%d\n", *p);

unsigned char* a = (unsigned char*)p;
// a = a+2;//-----------------------> incrementa 2*1 byte = 2 bytes
printf("%x\n", a);
printf("%x\n", a+2);
printf("%d\n", *a);

unsigned long x = (unsigned long)*a;
printf("%d\n", x);

system("pause");
return 0;
}


igualmente ya se que lo habías resuelto haciendo un cast al tipo BYTE, pero pongo esta explicación para otras personas que tengan dudas

#15
Este post, tiene una clase Fecha que tiene al final un par de funciones sobre algo así, aunque es para saber si una fecha está dentro de un dos fechas.

http://foro.elhacker.net/programacion_cc/clase_fecha_con_modificaciones-t358396.0.html

EDIT:
daaaaaaaaa mirá la fecha del tema quien se mandó el bump XD
#16
Programación C/C++ / Re: Duda c y c++
16 Junio 2012, 17:10 PM
alto quilombo XD
si está en c se tiene que poder pasar a c++,
me imagino que lo que estás queriendo hacer es pasar todos los printf y scanf a cout y cin, el %c significa un char, osea en lugar de ese %c va un char. volá todos los printf y reemplasalos con cout y listo
#17
cuando declarás una cadena de char como lo hicistes así:


char *nom="ME ENCANTAN LOS PUNTEROS";


tenés que hacerlo de esta forma, insertando el cero delimitador ("\0")

char *nom="ME ENCANTAN LOS PUNTEROS\0";

#18
hola por ahí este post te pueden ayudar

http://foro.elhacker.net/programacion_cc/tutorial_obtener_direccion_de_struct_dinamicamente-t358284.0.html

en cuanto el tipo de dato BYTE (unsigned char) es el que necesitás para incrementar de a un byte lógicamente, aunque el tipo puntero ya sabés que es de 4 bytes para el tipo que sea.
#19
Programación C/C++ / Re: dudas en lenguaje c
15 Junio 2012, 23:02 PM
es raro que algo no se pueda hacer en c/c++ ,
hasta drivers se hacen en este lenguage.

ciertas cosas de muy bajo nivel o extrema precisión se hacen en ensamblador.

obviamente siempre que haya un sistema operativo que ponga a disposición funciones de c para manejar todos los aspectos, por ejemplo la api documentada de windows o la indocumentada.

#20
muy bueno el program, para empezar como es tu caso. te digo un par de consejos ,
cuando tenés muchos casos para evaluar y te importa saber si se da cierto caso sólamente, etnonces te conviene hacer algo como esto


Citarif( primer caso)
else if(segundo caso)
else if(tercer caso)
y así

y si podés evaluar una variable de tipo entero que represente todos los casos en cuestión, entonces podés usar un switch entre casos, así


Citarswitch(selector_de_casos)
{
   caso 1: { } break;
   caso 2: { } break;
}