Salut,


J'ai un léger problème pour réussir à exécuter des blocks d'instructions que j'ai créé dynamiquement

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void blockExecute() {
	size_t size = &&block_end - &&block_begin;
	void* buf = malloc(size);
	if (buf == NULL) {
		puts("allocation du buffer impossible");
		fflush(stdout);
		exit(-1);
	}
	void* block = memcpy(buf, &&block_begin, size);
 
	puts("début de l'exécution");
	fflush(stdout);
	goto *block;
 
block_begin:
	puts("coucou");
block_end: return;
 
}
 
int main(int argc, char** argv) {
	blockExecute();
	return 0;
}

et ça me sort ceci :
gorgonite@GorgonMobile$ make BasicBlocks.exe
gcc -O0 -Wall BasicBlocks.c -o BasicBlocks.exe
gorgonite@GorgonMobile$ ./BasicBlocks.exe
début de l'exécution
Erreur de segmentation (core dumped)

si quelqu'un voit comment s'y prendre... ça m'intéresserait