char** split(char* src,char spl_ch)
{
char ch;
char* strs[20];
int strs_cnt=0;
int src_l=(int)strlen(src);
int lbound=0;
for (int i=0;i<src_l;i++)
{
ch=src[i];
if (ch==spl_ch)
{
substr(&strs[strs_cnt],src,lbound,i);
strs_cnt+=sizeof(char);
lbound=i+1;
}
}
return strs;
}
void substr(char* result[],char* src,int st,int end)
{
if (end-st<=0) return;
char buf[100];//=new char[100];//[100]={""};//end-st];
int buf_cnt=0;
for (int i=st;i<end;i++)
{
buf[buf_cnt]=src[i];
buf_cnt++;
}
buf[end-st]='\0';
//delete buf;
*result=buf;
}
Почему в функции substr переменная buf не копируется в result по значению, а копируется по ссылке, т.е. в результате выполнения ф-ии split я получаю массив одинаковых значений? Или нужно специально выделять память в куче?