A more generic method based on strstr function:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
    char* str="Hi all.\nMy name is Matteo.\n\nHow are you?\n\nThanks";
    char **result = NULL;
    unsigned int index = 0;
    unsigned int i = 0;
    size_t size = 0;
    char *ptr, *pstr;
    ptr = NULL;
    pstr = str;
    while(pstr) {
        ptr = strstr(pstr, "\n\n");
        result = realloc(result, (index + 1) * sizeof(char *));
        size = strlen(pstr) - ((ptr)?strlen(ptr):0);
        result[index] = malloc(size * sizeof(char));
        strncpy(result[index], pstr, size);
        index++;
        if(ptr) {
            pstr = ptr + 2;
        } else {
            pstr = NULL;
        }
    } ;
    for(i = 0; i < index; i++) {
        printf("Array[%d] : >%s<\n", i, result[i]);
    }
    return 0;
}