なんで正しい結果にならないんだろ?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
char *s[] = { "int", "main", "void", "char", "qsort", "strcmp" };
qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), (int (*)(const void *, const void *))strcmp);

{
int i;
for (i = 0; i < sizeof(s) / sizeof(s[0]); i++)
puts(s[i]);
}

return 0;
}