Solution in C with explanation in detail
Do upvote if you like the solution to keep me motivated \uD83D\uDE0A\u270C\n\nchar ** fizzBuzz(int n, int* returnSize)\n{\n    int i;\n    *returnSize = n; // s
Do upvote if you like the solution to keep me motivated \uD83D\uDE0A\u270C\n```\nchar ** fizzBuzz(int n, int* returnSize)\n{\n    int i;\n    *returnSize = n; // since n = number of elements to be returned\n    char **answer; // the string of strings where the right elements will be copied\n    char str[5]; // every string contains at most 5 character (max number is 10000 => 5 characters)\n    \n    i = 1; // first number we want to return is 1\n    answer = NULL;\n    answer = malloc(sizeof(*answer) * n); // our string of strings will have the same number of element than the returning one (n)\n    if (!answer)\n        return (answer); // securizing our malloc => returning NULL if something went wrong\n    while (i <= n)\n    {\n        if (i % 15 == 0)\n            answer[i - 1] = strdup("FizzBuzz"); // NB we need to start duplicating from position 0 => (i - 1)\n        else if (i % 3 == 0)\n            answer[i - 1] = strdup("Fizz");\n        else if (i % 5 == 0)\n            answer[i - 1] = strdup("Buzz");\n        else\n        {\n            sprintf(str, "%d", i); // converting integer i into char and storing it in str\n            answer[i - 1] = strdup(str);\n        }\n        i++;\n    }\n    return (answer);\n}\n```
['C']