Run-Timeエラーの原因に関して教えてください。
皆様、いつもありがとうございます。
C言語で教えてください。
プログラムを実行すると、下記内容のエラーが発生します。
Run-Time Check Failure #2 - Stack arround the variable 'wk_date' was corrupted
発生場所までは、突き止めましたが、原因が釈然としません。
wk_dateとwk_timeをstaticをつけて定義すると、このエラーが
出ないことから、strcpyの関数でのポインターのトラブル?だと
思うのですが、下記のロジックでおかしい箇所はあるでしょうか?
ロジックは、現在の日付と時刻をudateに入れて返すだけです。
static char udate[15];
:
:
init()
{
char wk_date[9];
char wk_time[7];
time_t current;
struct tm *local;
time(¤t); /* 現在の時刻を取得 */
local = localtime(¤t); /* 地方時の構造体に変換 */
local->tm_year +=1900;
local->tm_mon +=1;
memset((char*)wk_date, NULL, sizeof(wk_date));
memset((char*)wk_time, NULL, sizeof(wk_time));
sprintf((char*)wk_date, "%04d%02d%02d", local->tm_year, local->tm_mon, local->tm_mday);
printf("%s\n", wk_date);
sprintf((char*)wk_time, "%02d%02d%02d", local->tm_hour, local->tm_min, local->tm_sec);
printf("%s\n", wk_time);
memset((char*)udate, NULL, sizeof(udate));
strcpy((char*)udate, strcat((char*)wk_date, (char*)wk_time));
return(0);
}
納得のいく、説明を頂ければ幸いです。宜しくお願いいたします。