gpt4 book ai didi

用指针改变C字符串值

转载 作者:行者123 更新时间:2023-11-30 15:54:32 24 4
gpt4 key购买 nike

我正在尝试使用另一个指针更改字符串的一部分。我有什么

    char** string = (char**) malloc (sizeof(char*));
*string = (char*) malloc (100);
*string = "trololol";

char* stringP = *string;
stringP += 3;
stringP = "ABC";
printf("original string : %s\n\n", *string);
printf("stringP : %s\n\n", stringP);

我得到了什么

original string : trololol;
stringP : ABC;

我想要的是 troABCol 都在其中:D

我知道我有一个指向字符串(char**)的指针,因为这就是我在方法内执行此操作所需要的。

最佳答案

您需要执行strcpy(*string, "trololol")而不是*string = "trololol";。您的解决方案会带来内存泄漏,因为它将由 malloc() 分配的内存指针替换为指向数据的指针,其中包含预先分配的“trololol”字符串。

strcpy() 复制指向的纯字符串,而不是 stringP = "ABC";,您可以执行 memcpy(stringP, "ABC", 3) (strcpy 在末尾附加 \0,而 memcpy 仅复制被告知要复制的数据)。

关于用指针改变C字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12898379/

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