私は自分自身を混乱させる午前ですが、私はここにあります。私は最近、ポインタを使ってより快適に感じるポイントにもっと慣れ始めましたが、strcpy_s()のバッファが小さすぎるというエラーが発生しています。C++ strcpy_s()を使用して、char配列へのポインタポインタ
std :: stringの代わりにchar配列を使用しているコメントはありません。char配列を中心としたHL2SDKのために、私はそのパターンに固執しています。
void func_a()
{
char *szUserID = new char[64];
char *szInviterID = new char[64];
char *szGroupID = new char[64];
sprintf(szUserID, "%I64d", GetCommunityID(szUserSteamID));
sprintf(szInviterID, "%I64d", GetCommunityID(g_CvarSteamID.GetString()));
GetGroupCommunityID(1254745, &szGroupID); // Group Steam Community ID
}
void GetGroupCommunityID(int groupID, char **communityID)
{
int staticID = 1035827914;
int newGroupID = 29521408 + groupID;
char *buffer = new char[64];
snprintf(buffer, sizeof(buffer), "%d%d", staticID, newGroupID);
strcpy_s(*communityID, sizeof(*communityID), buffer);
delete buffer;
}
動的に割り当てられた 'char'の配列が必要な場合は、通常、' std :: vector 'を使用して取り除くことができます。なぜここでうまくいかないのか分かりません。 –
スタック上で宣言されたばかりのcharバッファを新しくして削除するのはなぜですか? –