Salve. Devo creare un programma che dato un testo, deve restituire la parola più lunga e la sua lunghezza, ma ho un problema di puntatori. Praticamente, al printf viene stampato: (null) e la lunghezza... ma perchè longestWord diventa null? Non capisco o_O Vorrei evitare di usare variabili globali...

codice:
#include <stdio.h>
#include <string.h>

void getMaxLengthWord (char *text, char *longestWord, int *maxLength);

int main()
{
    char text[] = "rosso verde blu";
    char *longestWord;
    int maxLength;

    getMaxLengthWord (text, longestWord, &maxLength);

    printf ("%s %d\n", longestWord, maxLength);

    return 0;
}

void getMaxLengthWord (char *text, char *longestWord, int *maxLength)
{
    int counter = 0;
    *maxLength = 0;

    char *word = strtok (text, " ");
    while (word != NULL)
    {
        int length = strlen (word);

        if (length > *maxLength)
        {
            *maxLength = length;
            longestWord = word;
        }

        word = strtok (NULL, " ");
    }
}