静态库函数调用,这样简单也不通过

静态库函数调用,这么简单也不通过
静态库中的函数:
void Dd(char *s)
{
string df="中华人民";
const char *sd=df.c_str();
strcpy_s(s,strlen(sd)+1,sd);

};
另外工程中调用:
int main()
{
char *s=new char[100];
        Dd(s);
cout<<s;
}
会发生缓冲区溢出。
这么简单我也不知道什么原因。
------解决思路----------------------
没发现溢出,只发现你没有释放开辟的空间
------解决思路----------------------
#include <string>
#include <iostream>
using namespace std;
void Dd(char *s)
{
char * df="中华人民";
const char *sd=df;
memcpy(s,sd,strlen(sd)+1);

}
int main()
{
char *s=new char[100];
    Dd(s);
cout<<s;
    return 0;
}

------解决思路----------------------
strcpy_s(s,100,sd);  第二个参数是缓冲区大小
------解决思路----------------------
没有发现溢出 只发现你没有delete