If treeName is indeed defined as char treeName[100][31]; in the scope of the function calling qsort, your code is correct:
qsort(&treeName[0], count, sizeof(*treeName), Comparar_nome);
You could write this equivalently:
qsort(treeName, count, sizeof treeName[0], Comparar_nome);
Note however that Comparar_nome must have the correct prototype:
int Comparar_nome(const void *a, const void *b);
A simple implementation being:
#include <stdio.h>
int Comparar_nome(const void *a, const void *b) {
return strcmp(a, b);
}
Passing strcmp instead of Comparar_nome would be a type mismatch invoking undefined behavior that would go unnoticed in many architectures but is nevertheless incorrect.
sizeof(char) * 31? It should work as well as eithersizeof(*treeName)orsizeof(treeName[0])(or slightly less plausible constructs, such assizeof(char[31])). All of these evaluate to the same number —31.Comparar_nome().