次の2つのバージョンのコードがあります
正しく動作するプログラム
#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
これらのコード サンプルの の 2 つの異なる動作を理解できません 。助けてください。