#include
#include
#include
typedef struct nodo{
struct nodo *prox;
int alg;
char inf;
}Nodo;
int main(){
unsigned int apontador;
unsigned int outro_apontador;
char *string="this is a string";
int i;
apontador = malloc(sizeof(Nodo));
((Nodo*)apontador)->inf = 'x';
((Nodo*)apontador)->alg = 172;
printf("%c \n", ((Nodo*)apontador)->inf );
printf("%d \n", ((Nodo*)apontador)->alg );
printf("\n");
outro_apontador = string;
printf("%s", ((Nodo *)outro_apontador));
printf("\n");
for(i=0;i
outro_apontador+=sizeof(char);
}
printf("\n");
return 0;
}
Esta é uma forma te dizer que, em C, no final, tudo é memoria. Você pode utilizar unsigned int pra implementar praticamente qualquer coisa que normalmente se utilizam ponteiros.
É claro, que isso apenas pra aprendizado, não saia por ai fazendo isso, pois isso rouba a legibilidade do código em momento posterior, até mesmo para o autor.