> 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;
> }
> [/ccode]
>
Здесь buf локальная переменная, память под которую выделена в стеке. Передавая указатель на нее за пределы функции он перестает быть валидным, так как по завершении функции, buf была удалена. Лучше буэт buf = new char[xxx];
А вообще, зачем изобретать велосипед. Для этого все уже написано и не раз. CRT — strcat, STL — string, ATL — CString
Posted via RSDN NNTP Server 1.7 beta