Napisałem taką funkcje. Gdy dodam (3) to tak jak by wszystko działało. ale jeśli nie dodam to dostaje

unsigned long int Czas::Get_id(wxString temp_str,int znak,bool idlen)
{
	wxString link=wxT("<a href=\"index.php?p=ogladaj&id=");
	temp_str.Remove(0,znak+link.Len());
	char * temp_char = new char [temp_str.Len()+1];
       wxMessageBox(temp_str, _T("error"), wxOK | wxICON_INFORMATION);//3
	strcpy(temp_char,temp_str.mb_str());
	long int ile_znakow,id;
	wxString id_str=wxT("");
	bool przerwi=false;
	for(ile_znakow=0; ile_znakow<temp_str.Len(); ile_znakow++)
	{
		if(!przerwi)
		{
			switch(*temp_char)
			{
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':
				case '0':
						{
							id_str+=*temp_char;
							break;	
						}
				case '"':{
							przerwi=true;
							break;
						 }
			}
			
		}
		else break;
		temp_char++;
		
	}
	if(idlen) return ile_znakow+znak+link.Len();
	else return wxAtoi(id_str);
}

*** glibc detected *** ./serialowiec2: munmap_chunk(): invalid pointer: 0x0840b930 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xa3cff1]
/lib/tls/i686/cmov/libc.so.6[0xa3e1f5]
./serialowiec2[0x805713d]
./serialowiec2[0x8055ffb]
./serialowiec2[0x8055e9b]
./serialowiec2[0x8055d4e]
./serialowiec2[0x805578e]
./serialowiec2[0x8055565]
/usr/lib/libwx_baseu-2.8.so.0(ZNK12wxAppConsole11HandleEventEP12wxEvtH andlerMS0_FvR7wxEventES3+0x3f)[0x7ada9f]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxEvtHandler21ProcessEventIfMatchesE RK21wxEventTableEntryBasePS_R7wxEvent+0x89)[0x84c379]
/usr/lib/libwx_baseu-2.8.so.0(_ZN16wxEventHashTable11HandleEventER7wxEv entP12wxEvtHandler+0x84)[0x84d424]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxEvtHandler12ProcessEventER7wxEvent +0xd3)[0x84d523]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN11wxTimerBase6NotifyEv+0x77)[0x654917]
/usr/lib/libwx_gtk2u_core-2.8.so.0[0x54652d]
/lib/libglib-2.0.so.0[0x704853c]
/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1f[0x7047e88]
/lib/libglib-2.0.so.0[0x704b730]
/lib/libglib-2.0.so.0(g_main_loop_run+0x1bf)[0x704bb9f]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb9)[0x1022419]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN11wxEventLoop3RunEv+0x4[0x53cc78]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN9wxAppBase8MainLoopEv+0x4e)[0x5cfe3e]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN9wxAppBase5OnRunEv+0x21)[0x5cfa31]
/usr/lib/libwx_baseu-2.8.so.0(_Z7wxEntryRiPPw+0x6a)[0x7e77aa]
/usr/lib/libwx_baseu-2.8.so.0(_Z7wxEntryRiPPc+0x37)[0x7e7987]
./serialowiec2[0x8056189]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x9e8b56]
./serialowiec2[0x8052af1]
======= Memory map: ========
q: ciaaaaach...
</cpp>