En effet, Lapintade a raison, ce n´est pas SDL qui détecte les collisions, c´est un probleme de savoir si 2 rectangles se chevauchent ou non.
Bon, allez, je te passe une petite fonction 
Elle renvoie 1 si les 2 rectangles se chavauchent, 0 sinon
int BoxCollide(SDL_Rect* a,SDL_Rect* b)
{
if (!(((b->x<a->x) && (a->x<b->x+b->w)) || ((b->x<a->x+a->w) && (a->x+a->w<b->x+b->w))))
return 0;
if (!(((b->y<a->y) && (a->y<b->y+b->h)) || ((b->y<a->y+a->h) && (a->y+a->h<b->y+b->h))))
return 0;
return 1;
}