elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: Sumpar en: 19 Agosto 2011, 18:28 pm
Si lo miramos en binario, un número par terminará siempre en cero... Operaciones binarias... and...

Saludos.
2  Programación / Programación C/C++ / Re: [C] [source] Revertir Cadenas en: 19 Agosto 2011, 01:24 am
Se esta usando ANSI C, quizas querias decir "la libreria de C"
Si, tienes razón...

strrev solo funciona con strings, encambio mi funcion funciona con una longitud dada.
Sin desmerecer tu código BlackZeroX▓▓▒▒░░, el título del hilo... ¿No se refería a cadenas? Y el código inicial ¿No iba enfocado a cadenas de texto?

Para este caso yo uso strrev

Saludos.
3  Programación / Programación C/C++ / Re: [C] [source] Revertir Cadenas en: 18 Agosto 2011, 10:23 am
¿Y por qué no usar ANSI C?

Código:
char *strrev(char *s);

Saludos.
4  Programación / Programación C/C++ / Re: dudita con cadena en: 10 Agosto 2011, 18:37 pm
Código:
#include <windows.h>
#include <time.h>

#pragma hdrstop

#pragma argsused
int main(int argc, char* argv[])
{
   time_t t1;
   time_t t2;

   t1 = time(NULL);

   int i=0;

   while(i<=5){
     MessageBox(NULL,TEXT("click aqui"),TEXT(""),MB_OK );
     i++;
   }

   t2 = time(NULL);

   char segundos[]=" segundos";
   char cadena[15];
   itoa(difftime(t2,t1), cadena, 10);
   strcat(cadena, segundos);

   MessageBox(NULL, cadena, TEXT("felicidades duraste"),MB_OK);

   return EXIT_SUCCESS;
}

Saludos.
5  Seguridad Informática / Análisis y Diseño de Malware / Re: Keylogger en Windows 7 en: 9 Agosto 2011, 14:58 pm
WH_KEYBOARD_LL



Saludos.
6  Programación / Programación C/C++ / Re: operador new para doble char en: 9 Agosto 2011, 01:16 am
osea lo que hacia con malloc si se que era una asignacion global, osea el tamanio total de la matriz. pero pense que con esa forma de new (la que no compila) era tambien asignacion global PARA una matriz.

pero ahora segun observo
Código:
items_de_descripcion = (char**) new char[cantidad_items * capacidad + cantidad_items * sizeof(char*)];

esto asignaria el tamaño total de la matriz pero de forma contigua, es esto asi ?
Eso asigna tamaño para los puteros y la matriz en memoria contigua.

y explicame otra cosa, esto
Citar
.... Al asignar primero espacio para los punteros a las cadenas, la memoria no va a ser contínua y debes asignar espacio, despues, para cada cadena.
.....
entiendo que inclusive el compilador no acepta de otra forma, pero porque esa necesidad de hacerlo asi, osea primero los 5 punteros y despues los vectores de cada uno

si puedes contestarme esas dos preguntas te lo agradeceria me has ayudado a entender, gracias ;)

El uso de new tal como se muestra mas arriba es equivalente a el uso de cualquier función que localice memoria. Una vez obtenido el bloque de memoria necesario, somos nosotros los que vamos a decidir donde estarán los punteros a las cadenas y donde estarán éstas. Como es mas fácil definir que tenemos todos los punteros al principio, así lo propongo. De ese modo al referirnos a un puntero que apunte al principio del bloque, su contenido será el primer puntero... Por similitud al significado de un array en C ( un array se define por un puntero al primer elemento del mismo). Pero en esto no tiene nada que ver el compilador, aunque si la convención de C/C++.  Tu puedes hacerlo de otra forma, incluso sin pos punteros a las cadenas, pues si todas ellas tienen el mismo tamaño, las puedes localizar sin necesidad de una tabla o array de punteros previo.

En esto del manejo de la memoria y punteros el C/C++ es un campeón  :D

No se si me explico o te lío mas.

Saludos.
7  Programación / Programación C/C++ / Re: operador new para doble char en: 8 Agosto 2011, 19:43 pm
yo lo que quisiera saber es porque siendo memoria dinamica no permite usar asi

Código:
items_de_descripcion = (char**) new char[cantidad_items][capacidad];

porque tira errores de que las dimensiones no son constantes.
pero asiendo eso con malloc si lo acepta. pero porque con new no?

Esa sintaxis no es válida. Al asignar primero espacio para los punteros a las cadenas, la memoria no va a ser contínua y debes asignar espacio, despues, para cada cadena.

Puedes realizar una reserva global con new, igual que con malloc.
Código:
items_de_descripcion = (char**) new char[cantidad_items * capacidad + cantidad_items * sizeof(char*)];

Luego asignas los valores de los punteros (al inicio del espacio de la memoria localizada) a la dirección de las cadenas que vendrán una detrás de otra en la posición  items_de_descripcion + cantidad_items * sizeof(char*);

Esto se puede hacer pero es mas lioso, difícil de entender y de leer mas adelante...

Saludos.
8  Programación / Programación C/C++ / Re: Ayuda definir datos de entrada y salida en: 8 Agosto 2011, 12:08 pm
En realidad no le piden códigop alguno, sólo que piense y esquematize en lenguaje natural los pasos a seguiir para dado un dato de entrada (fecha) devuelva un signo del zodiaco.

Entrada: fecha de nacimiento.
Tabla con los signos del zodiaco y sus intervalos de fechas.
Comparación con la tabla, búsqueda.
Resultado del signo encontrado.

..Y ya está.   ::)


Saludos.
9  Programación / Programación C/C++ / Re: operador new para doble char en: 8 Agosto 2011, 12:02 pm
La filosofía es correcta pero me llama la atención esto:
Código:
int capacidad = 1000/cantidad_items;

Si por defecto cantidad_items es 5 las cadenas van a tener longitud cero...

¿Quizás querías decir?
Código:
int capacidad = 1000*cantidad_items;


Saludos.
10  Programación / Programación C/C++ / Re: operador new para doble char en: 8 Agosto 2011, 00:55 am
Con esto creas un array de tres punteros a punteros tipo char:
Código:
    char **A = new char*[3];
    A[0] = "uno";
    A[1] = "dos";
    A[2] = "tres";
    delete [] A;

Si cada elemento lo quieres crear dinámicamente tendras que volver a usar el operador new:
Código:
   A[0] = new char[10];
No te olvides de su destrucción.

La forma estática es simple:
Código:
   char A[3][4];

Saludos.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines