Bonjour à tous ! Voilà je vous expose mon problème.

Je travail en ce moment sur un programme charger de capturer un flux sur un périphérique (usb) seulement lorsque je veux transferer ces données vers une variable grace à sprintf j'ai droit au signal SIGSEGV (segmentation).

Voilà mon code :

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
 
char buf[65535];
char *cmp_1;
 
(...)
	while(1)
	{
	ret = usb_interrupt_read(handle,bEndpointAddress,buf,256,100);
	if (ret) {
		for (i=0; i<ret; i++) {
                         sprintf(cmp_1,"%02x",((int) buf[i] & 0x0ff));
				printf("cmp_1 :[%s]",cmp_1);
			}
		}
	}
Je ne comprend pas car un simple printf("%02x",((int) buf[i] & 0x0ff)); fonctionne et je ne pense pas avoir fait une erreur de codage...

Merci de m'aider ^^.