Avis à tous : WALLEZ VOS CODES
C´est super chiant à lire sur le forum, en plus on distingue même plus vos paroles de cos sources ça devient chiant
Maintenant :
sonic66 ->
Pour créer un nouveau char*, perso je fais comme ça :
free(a);
a = ( char*)malloc(sizeof(char) * 10000);
Par exemple 
( Avec new je sais plus trop la syntaxe)
Pour ta fonction qui ne veut pas compiler, types la en char* et pas en char, et ne précise pas la taille du tabelau dans return :
char* copier(char a[10000],char b[10000],int c)
( ...)
return a;
rikkuman ->
Dis nous les erreurs, on est pas devins et on peut pas savoir ce qui bugge rien qu´en ayant 3 lignes de codes :\
Dans ton cas j´me demande si ta fonction a accès aux donnée hp1 hp2 et hp3...
dyno ->
la balle en appuyant sur d avance que si j´appui sur d, sinon, elle avance pas.
if(keystate[SDLK_d])r4.x+=3*sx,r4.y+=3*sy;
Tu comprends ton code ? > ___<
Là tu dis que si on appuie sur d, ça déplace la balle...Alors c´est normal que ça déplace la balle que si tu appuies sur d :\
Si tu veux que le jeu démarre quand on appuie sur d, il faut faire un keystate avant ta boucle principale, dans le main lui-même ou une fonction commencer_jeu() ou qqchose dans ce genre...