我正在努力理解指针。我用 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;
}
char* temp1=NULL
这个程序给出了一个段错误。如果我改成char* temp1
仍然它失败。如果我更改char* temp1
为char temp1[80]
,则代码有效。char temp1[1]
如果输出为 temp,则该代码也有效。我在想输出应该是t。为什么会这样,为什么会出现错误char* temp
。