在C语言中使用strcpy函数的优点

在C语言中使用strcpy函数的优点,c,pointers,strcpy,C,Pointers,Strcpy,或者,我们可以像这样将s分配给t:t=s;。使用替代方法的缺点是什么?如果指定t=s,则应用于t所指内存块的每个更改都会影响s,而s可能不是您想要的 另外,您可能需要查看。如果指定t=s,则应用于t所指内存块的每个更改都会影响s,而s可能不是您想要的 另外,您可能需要查看。当使用像t=s这样的简单赋值时,您实际上没有复制字符串,而是使用两个不同的名称引用同一字符串。当使用像t=s这样的简单赋值时,您实际上没有复制字符串,您使用两个不同的名称引用同一字符串。变量t的值是一个或多个连续字符的位置。当

或者,我们可以像这样将s分配给t:t=s;。使用替代方法的缺点是什么?

如果指定t=s,则应用于t所指内存块的每个更改都会影响s,而s可能不是您想要的

另外,您可能需要查看。

如果指定t=s,则应用于t所指内存块的每个更改都会影响s,而s可能不是您想要的


另外,您可能需要查看。

当使用像t=s这样的简单赋值时,您实际上没有复制字符串,而是使用两个不同的名称引用同一字符串。

当使用像t=s这样的简单赋值时,您实际上没有复制字符串,您使用两个不同的名称引用同一字符串。

变量t的值是一个或多个连续字符的位置。当您执行t=s时,您正在将字符s[0]的位置复制到t中,并替换来自malloc的t的旧值。t[0]和s[0]现在指的是完全相同的字符-修改一个字符将通过另一个字符可见

使用strcpyt,s时,将实际字符从一个位置复制到另一个位置

前者就像把两个门牌号放在同一栋房子上。后者就像是在一个房子里制作所有家具的精确复制品,然后把它放在第二个房子里。

变量t的值是一个或多个相邻字符的位置。当您执行t=s时,您正在将字符s[0]的位置复制到t中,并替换来自malloc的t的旧值。t[0]和s[0]现在指的是完全相同的字符-修改一个字符将通过另一个字符可见

使用strcpyt,s时,将实际字符从一个位置复制到另一个位置

前者就像把两个门牌号放在同一栋房子上。后者就像是将一间房子里的所有家具复制成一个精确的副本,然后放在第二间房子里。

strcpy函数用于将一个字符串复制到另一个字符串,您在这里误用了它。使用指针时,您可以很容易地这样做

void main()
{
    char s[100]="hello";
    char *t;

    t=(char*)malloc(100);
    strcpy(t,s);
}
指针“t”获取字符串“s”的基址,而这正是指针的作用。另一方面,你可以使用strcpy工作。你让一个指针存储整个字符串。

strcpy函数用于将一个字符串复制到另一个字符串,你在这里误用了它。使用指针时,你可以像

void main()
{
    char s[100]="hello";
    char *t;

    t=(char*)malloc(100);
    strcpy(t,s);
}

指针“t”获取字符串“s”的基址,而这正是指针的作用。另一方面,你需要完成strcpy工作。你让一个指针存储整个字符串。

@kotlinski:除了明显的内存泄漏外,它到底有什么问题?@Fred:好的,它现在已经修好了,从一开始看起来就很糟糕。@kotlinski:啊,看着编辑历史,我想我明白你的意思了。@kotlinski:除了明显的内存泄漏外,它到底有什么不好的地方?@Fred:好的,它现在已经修好了,从一开始看起来就很糟糕。@kotlinski:啊,看着编辑历史,我想我明白你的意思了。