strcpy是一種C語言的標準庫函數,它的作用是把含有'\0'結束符的字符串複製到另一個地址空間,返回值的類型爲char *。其原型聲明:char *strcpy(char *dest, const char *src);但使用strcpy函數時我們得注意空指針不能作爲其參數,既不能作爲dest的參數,也不能作爲src的參數,否則會報錯誤:“XXX處有未經處理的異常:0xC0000005:寫入位置0x00000000時發生訪問衝突”。
示例一:空指針不能作爲dest的參數
有如下代碼:
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = { 0 };
strcpy(NULL, "hello world");
printf("str:%s\n",str);
return 0;
}
編譯,運行,我們會發現程序報錯了,如下圖所示:
示例二:空指針不能作爲src的參數
有如下代碼:
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = { 0 };
strcpy(str, NULL);
printf("str:%s\n",str);
return 0;
}
編譯,運行,我們會發現程序報錯了,如下圖所示:
上述兩個實例證明了空指針不能作爲strcpy函數的參數。