001
14.02.2006, 13:57 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
das das klappt bei dir ist zufall, du hängst an einen nicht von dir generierten zeiger weitere daten an, sowas kann böse ins auge gehen, ansonsten ist getenv nicht "safe" d.h es liefert für die gleiche variable auch den gleichen zeiger, wodurch entry und entry2 auf die gleiche speicherstelle zeigen.
C++: |
#include "stdafx.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { char *entry = NULL; char eintrag1[255], eintrag2[255]; char verz[20] = "\\plugtmp\\access*"; char verz2[40] = "\\plugtmp\\";
entry = getenv("TEMP"); if(entry) // hats den überhaupt geklappt? { strncpy(eintrag1, entry, 255); strncat(eintrag1, verz, 255); // die länge da gibt an wieviel in eintrag1 reinpassen! mit angabe von 600 kannste gleich strcat nutzen -.- strncpy(eintrag2, entry, 255); strncat(eintrag2, verz2, 255); } else { // tu was mit dem fehler }
cout << eintrag1<< endl; cout << eintrag2;
return 0; }
|
-- class God : public ChuckNorris { }; Dieser Post wurde am 14.02.2006 um 13:57 Uhr von FloSoft editiert. |