关于strcpy的bug的问题
char* src = new char[10];
memset(src, 1, 10);
char* dest = new char[20];
strcpy(dest, src);
在这个例子中,我们不容易发现strcpy这个语句中有Bug。因为src没有休止符。
//请大家分析一下以上代码到底有什么BUG呢,我没发现这段代码有bug啊!
char* src = "hello world!";
char* dest = new char[10];
strncpy(dest, src, strlen(src)); // 这里有bug
//请大家分析一下以上代码到底有什么BUG呢,我没发现这段代码有bug啊!
[解决办法]
char* src = new char[10];
src[9]=0;
char* dest = new char[20];
strcpy(dest, src);
char* src = "hello world!";
char* dest = new char[10];
strncpy(dest, src, 9));dest[9]=0;