Hallo,
ich habe mit Visual Studio 2008 ein Problem mit dem Aufruf strcpy_s. Der einfachheithalber habe ich den Code minimiert. Vielleicht kann mir jemand sagen was ich falsch mache.
Das projekt ist eine win32 Konsolenanwendung. Die Compiler Einstellungen sind Standard mit Ausnahme des Parameters Zeichensatz, den habe ich auf "Multi-Byte-Zeichensatz verwenden" geändert.
Beim Verlassen der Funktion void put_old_file_to_history() kommt die Fehlermeldung "Run-Time Check Failure #2 - Stack around the variable 'hist' was corrupted."
Hier ist der Code:
#include "stdafx.h"
#include "string.h"
void put_old_file_to_history();
int _tmain(int argc, _TCHAR* argv[])
{
put_old_file_to_history();
return 0;
}
void put_old_file_to_history()
{
TCHAR path[260+1];
TCHAR path_new[260+1];
TCHAR hist[128+1];
int len;
strcpy_s(path,260,_T("11111111112222222222333"));
len = (int)strlen(path);
strcpy_s(path_new,260,path);
strcpy_s(hist,260,_T("1")); // nach Ausführung dieser Zeile ist das array path_new mit 0xfe überschrieben
strcpy_s(path_new,260,hist);
}
es wäre schön, wenn mir jemand helfen würde.
Gruß
Klaus
ich habe mit Visual Studio 2008 ein Problem mit dem Aufruf strcpy_s. Der einfachheithalber habe ich den Code minimiert. Vielleicht kann mir jemand sagen was ich falsch mache.
Das projekt ist eine win32 Konsolenanwendung. Die Compiler Einstellungen sind Standard mit Ausnahme des Parameters Zeichensatz, den habe ich auf "Multi-Byte-Zeichensatz verwenden" geändert.
Beim Verlassen der Funktion void put_old_file_to_history() kommt die Fehlermeldung "Run-Time Check Failure #2 - Stack around the variable 'hist' was corrupted."
Hier ist der Code:
#include "stdafx.h"
#include "string.h"
void put_old_file_to_history();
int _tmain(int argc, _TCHAR* argv[])
{
put_old_file_to_history();
return 0;
}
void put_old_file_to_history()
{
TCHAR path[260+1];
TCHAR path_new[260+1];
TCHAR hist[128+1];
int len;
strcpy_s(path,260,_T("11111111112222222222333"));
len = (int)strlen(path);
strcpy_s(path_new,260,path);
strcpy_s(hist,260,_T("1")); // nach Ausführung dieser Zeile ist das array path_new mit 0xfe überschrieben
strcpy_s(path_new,260,hist);
}
es wäre schön, wenn mir jemand helfen würde.
Gruß
Klaus