
Enviado em 01/06/2013 - 12:05h
#include <stdio.h>
#include <stdlib.h>
typedef struct OBJECT OBJECT;
struct OBJECT
{
int id;
int flags;
};
OBJECT *win;
void create (void)
{
win = (OBJECT*) malloc (sizeof(OBJECT));
if (!win)
{
printf ("xi, ferrou ... sem memoria ;)\n");
exit (-1);
}
win->id = 200;
win->flags = 300;
}
void change_id_flags (OBJECT *o)
{
int *p;
p = (int*)o; // get id
*p = 2222; // set id
p++; // change to flags ... get flags
*p = 3333; // set flags
}
int main (void)
{
create ();
// ORIG: 200, 300
//
printf ("\nORIG OBJECT->id: %d\n", win->id);
printf ("ORIG OBJECT->flags: %d\n\n", win->flags);
printf ("------- CHANGING -------\n\n");
change_id_flags (win);
// CHANGED: 2222, 3333
//
printf ("NOW OBJECT->id: %d\n", win->id);
printf ("NOW OBJECT->flags: %d\n", win->flags);
return 0;
}
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (9)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









