静态库函数调用,这样简单也不通过
静态库函数调用,这么简单也不通过
静态库中的函数:
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;
}
会发生缓冲区溢出。
这么简单我也不知道什么原因。
------解决思路----------------------
没发现溢出,只发现你没有释放开辟的空间
------解决思路----------------------
------解决思路----------------------
strcpy_s(s,100,sd); 第二个参数是缓冲区大小
------解决思路----------------------
没有发现溢出 只发现你没有delete
静态库中的函数:
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