I made following changes.
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void parse_my_string(char**, char *, char *);
int count_spaces(char*);
int main(void)
{
int count = 0, i = 0;
char **parsed_str;
char *str = "abcd efg ij";
count = count_spaces(str);
parse_my_string(parsed_str , str, ' ');
for(i = 0; i <= count; i++)
{
printf("%s\n", parsed_str[i]);
}
getchar();
return 0;
}
int count_spaces(char* str)
{
int i, count = 0;
for(i = 0; i < strlen(str); i++)
{
if(str[i] == ' ')
count++;
}
return count;
}
void parse_my_string(char **parse_arr, char *str_to_be_parsed, char *ch)
{
char *temp;
char *temp_str;
int i = 0;
temp_str = (char *) malloc(strlen(str_to_be_parsed) + 1);
strcpy(temp_str, str_to_be_parsed);
temp = strtok(temp_str, ch);
strcpy(parse_arr[i], temp);
i++;
while((temp = strtok(NULL, ch)) != '\0')
{
strcpy(parse_arr[i], temp);
i++;
}
parse_arr[i] = NULL;
free(temp_str);
}