Вот написал функцию для добавления элементов в массив.
(str-новый элемент, num-каким добавить).
Но что-то она косячит.
void AddtoArray(char *str,int num){
char *stradd;
char **newarray;
int x,x1,adding_el;
adding_el=0;
newarray=(char **)calloc(size+1,sizeof(char *));
x=0;
x1=0;
while (x<=size+1){
if (x!=num || adding_el==1){
stradd=dates[x];
newarray[x1]=(char *)calloc(strlen(stradd)+1,sizeof(char));
strcpy(newarray[x1],dates[x]);
x++;
x1++;
}
else {
stradd=str;
newarray[x1]=(char *)calloc(strlen(stradd)+1,sizeof(char));
adding_el=1;
strcpy(newarray[x1],str);
x1++;
}
}
size++;
dates=(char **)calloc(size,sizeof(char *));
for (x=0;x<=size;x++){
stradd=newarray[x];
dates[x]=(char *)calloc(strlen(stradd)+1,sizeof(char));
strcpy(dates[x],newarray[x]);
}
for (x=0;x<=size;x++){
free(newarray[x]);
}
free(newarray);
}