gpt4 book ai didi

C、将一个指向值赋给一个指向值,如*a=*b;

转载 作者:行者123 更新时间:2023-11-30 18:37:57 24 4
gpt4 key购买 nike

如果我想改变指向的值而不改变指针的地址,我该怎么办?

3、*d=*b将在运行时返回段错误。我认为这是因为*d没有指向任何内存空间。这也解释了为什么 2, 有效。然而,对于 1,*a*b指向相同大小的内存,为什么这里会返回段错误?

void main(void){
char *a="abcd";
char *b="1234";
char *c=(char *)malloc(sizeof(char));
char *d;
*a=*b; //1.segmentation fault
*c=*b; //2.ok
*d=*b; //3.segmentation fault
}

最佳答案

常量字符串通常存储在只读存储器中,您无法修改它们。

要使它们可写,请先创建一个副本:

char *a = strdup("abcd");

关于C、将一个指向值赋给一个指向值,如*a=*b;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35380585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com