我正在理解指针。我在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