Fala pessoal, blz?
Eu estava dando uma olhada em um código aqui e não entendi muito bem uma parte. Segue uma parte do código abaixo:
unsigned char code[]="String";
int (*ret)() = (int(*)())code;
ret();
Mais especificamente a parte (int(*)())code , nesta parte creio eu que o que o programa faz um casting de uma array para um ponteiro de função, ou seja, pega o endereço de memoria da array code e diz para o programa que é um endereço de uma função. Em seguida atribui esse endereço pro ponteiro de função ret. Estou certo? Alguém pode me explicar como funciona?
Grato desde já.
Eu estava dando uma olhada em um código aqui e não entendi muito bem uma parte. Segue uma parte do código abaixo:
unsigned char code[]="String";
int (*ret)() = (int(*)())code;
ret();
Mais especificamente a parte (int(*)())code , nesta parte creio eu que o que o programa faz um casting de uma array para um ponteiro de função, ou seja, pega o endereço de memoria da array code e diz para o programa que é um endereço de uma função. Em seguida atribui esse endereço pro ponteiro de função ret. Estou certo? Alguém pode me explicar como funciona?
Grato desde já.
Comment