Re: Передача указателя на строку из массива
От: size_t Россия  
Дата: 17.08.03 12:58
Оценка:
> 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
----------------
Нужное вписать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.