Parse $ PATH Variable und speichere die Verzeichnisnamen in einem Array von Strings

Ich möchte die Variable $ PATH von Linux analysieren und dann die Verzeichnisnamen, die durch ':' getrennt werden, in einem Array von Zeichenfolgen speichern.

Ich weiß, es ist eine einfache Aufgabe, aber ich stecke fest und jede Hilfe wäre nett.

Mein Code ist so ähnlich, aber etwas stimmt nicht.

char **array;
char *path_string;
char *path_var = getenv("PATH");
int size_of_path_var = strlen(path_var);

path_string = strtok(path_var, ":");
while (path_string != NULL) {
    ss = strlen(path_string)
    array[i] = (char *)malloc(ss + 1);
    array[i] = path_string; //this is actually all i want to do for every path
    i++;
    path_string = strtok(NULL, ":");
}