我正在理解指針。我在C.爲什麼這個指針操作失敗?
#include<stdio.h>
char *my_strcpy(char *dest, char *source)
{
while (*source != '\0')
{
*dest++ = *source++;
}
*dest = '\0';
return dest;
}
int main(void)
{
char* temp="temp";
char* temp1=NULL;
my_strcpy(temp1,temp);
puts(temp1);
return 0;
}
寫這個字符串拷貝功能,這個程序給出了一個segfault.If我改變char* temp1=NULL
到char* temp1
還是失敗。如果我將char* temp1
更改爲char temp1[80]
,則代碼有效。該代碼也可以工作,如果char temp1[1]
並給出輸出作爲溫度。我在想輸出應該是t。爲什麼它是這樣的,爲什麼我會遇到char* temp
錯誤。
爲什麼這個downvoted? – gizgok