我有以下两个版本的代码
正确工作的程序
#include<iostream.h>
#include<string.h>
void main()
{
const char *q="+\0";
char *p=""; //working correct with ""
strncpy(p,q,2);
cout<<p;
}
程序报错
#include<iostream.h>
#include<string.h>
void main()
{
const char *q="+\0";
char *p=NULL; //Program gives error abnormal termination when *p=NULL or *p="\0"
strncpy(p,q,2);
cout<<p;
}
我不理解 char *p
这些代码示例中的两种不同行为。请帮忙。