关于#ar#的问题,如何解决?

#include<stdio.h>
int main(void)
{
char *str;
char *str1 = "hello world";
while(*str++ = *str1++)
{
}
*str = '\0';
printf_s("%s",str);
return 0;
}
这段代码是实现strcpy函数功能,在vs上可以打印出真确的结果,但是dev不可以打印str的值?
很奇怪

只要把首指针赋值给新串,不需要遍历指针

有以下2种写法:

#include<stdio.h>
int main(void)
{
    char *str1 = (char*)"hello world";
    char *str = str1;
    printf("%s\n", str);

    char str2[] = "hello world2";    
    char *str0 = str2;
    printf("%s\n", str0);
    
    return 0;
}