gpt4 book ai didi

指针返回 null 的 C 字符串函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:51 25 4
gpt4 key购买 nike

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void catTo(char *dest, const char *str1, const char *str2)
{
dest = (char *) malloc(1 + strlen(str1)+ strlen(str2) );
strcpy(dest, str1);
strcat(dest, str2);
}

int main(int argc, char** argv) {
char *str1 = "abcd";
char *str2 = "defg";
char *dest;
catTo(dest, str1, str2);
printf("%s",dest);

return 0;
}

我一直在尝试让一个简单的 str 复制函数起作用,但是,当我打印出 dest 时,我得到“(null)”。我试过,把 &/* 放在某些变量的前面,但没有成功。

最佳答案

不要将 dest 作为输入参数传递。它的起始值不需要(并且未定义)并且不会被 catTo 函数调用修改,这解释了您的问题。

最好这样做:

char *catTo(const char *str1, const char *str2)
{
char *dest = malloc(1 + strlen(str1)+ strlen(str2) );
strcpy(dest, str1);
strcat(dest, str2);
return dest;
}

在调用者中:

char *dest = catTo(str1, str2);

关于指针返回 null 的 C 字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42004200/

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