gpt4 book ai didi

c - 将指针传递给函数并在外部访问它

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

我试图连接两个字符串文字指针,并将它们存储在第三个字符串中,第三个字符串动态分配内存以适应两个字符串,最后添加并打印出字符串 char。我无法在函数外打印字符串。

 //Here is the function
void join(char ptr1, char ptr2, char **ptr3) {


char tempStr[strlen(strPtr1) + strlen(strPtr2)+1];
strcpy(tempStr, ptr1);
strcat(tempStr, ptr2);
*ptr3 = (char*)malloc(strlen(tempStr));
strcpy(ptr3, tempStr);

printf("%s\n", ptr3);
}

主要是我有这些变量

char *str1 = "print "; char *str2= "out"; char *str3;

join(str1,str2,&(str3));

printf("%s",str3)://segmentation fault occur here

我问过类似的question关于指针操作,我仍然为这些概念而苦恼。

最佳答案

如果这是 C,则您忽略了字符串末尾的 '\0'。试试这个

void join(char* ptr1, char* ptr2, char** ptr3) 
{
char* result = (char*)malloc(strlen(ptr1) + strlen(ptr2) + 1);

strcpy(result, ptr1);
strcat(result, ptr2);
*ptr3 = result;
}

另外,为什么不直接返回新字符串而不是传递对 ptr3 的引用?

关于c - 将指针传递给函数并在外部访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38706207/

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