Und wieder eine 'unusual programm termination'
-
Der code
//commandline interpreter void clInterpret(vector<LPTSTR>* inbounds,vector<LPTSTR>* outparam){ LPTSTR cline = ::GetCommandLine(); LPTSTR brackets = strbrk(cline); LPTSTR ebrackets = strbet(cline,'[',']'); LPTSTR seps=" ,"; LPTSTR token; //inparam if(_stricmp(brackets,"$$nostring")!=0){ token = strtok( brackets, seps ); while( token != NULL ) { inbounds->push_back(token); token = strtok( NULL, seps ); } } //outparam if(_stricmp(ebrackets,"$$nostring")!=0){ token = strtok( ebrackets, seps ); while( token != NULL ) { outparam->push_back(token); token = strtok( NULL, seps ); } }
produziert mit
vector<LPTSTR> in; vector<LPTSTR> out; clInterpret(&in,&out); for(int i =0;i<in.size();++i)printf("instring[%d]=%s\n",i,in.at(i)); for(int j =0;j<out.size();++j)printf("outstring[%d]=%s\n",j,out.at(i));
den fehler
Runtime Error! Program:... This application has requested blablabla
Wie beheb ich das Problem?
-
1. richtiges Forum verwenden
2. Fehler beschreiben und nicht einfach hinklatschen
3. Umgebung aufführen
4. Debugger verwenden
-
Ok das mit dem Forum stimmt, hab noch das Cli und .Net übersehn weil ich nicht viel zeit hatte, hab deshalb auch nicht den Fehleer abgetippt
Die Umgebung besteht aus einem _tmain(int argc,TCHAR ...) und hilft dir auch nicht großartig weiter
Das Problem tritt aber nur ein, wenn ich strbet einsetze, also kuck ich da mal nach
Vielleicht habe ich da ja einen Fehler eingebaut, der den Compiler zwar nicht stört, das Programm aber Abstürzen lässtWen ein Mod mal so nett wär das ins C++ Forum zu verschieben
-
Ok hat sich erledigt
Da hat sich n freches 'i' an die stelle von 'j' geschlichen
-
Mit Umgebung war vllt. der Compiler und das OS gemeint (IMHO ist strbrk und strbet kein AnsiC
http://www.thinkage.ca/english/gcos/expl/c/lib/strbrk.html )Btw.: Was hat Dein Quelltext mit C++ zu tun ? Das ist auch das falsche Forum.
-
strbrk und strbet sind zwei Funktionen die ich mir selbst geschrieben hab
strbrk liest den string zwischen zwei Klammern
strbet liest den string zwischen zwei als Argumente angegebenen Chars