gpt4 book ai didi

C - 创建一个字符串 "from"结构参数

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

有一个

typedef struct person {
char name[20]
char surname[20]
} person_t;

我需要创建一个类似 XXXXXX:YYYYYY 的字符串,函数如下char* personToString(person_t *p)。我试着做到了:

char* personToString(person_t* p) {

int n1,n2;
n1=strlen(p->name);
n2=strlen(p->surname);
char *p = (char*) malloc((n1+n2+2)*sizeof(char));
strcat(p,puser->name);
strcat(p,":");
strcat(p,puser->surname);

return p;
}

这给了我一个合理的输出,但我在使用 valgrind 测试时遇到了一些错误!我还认为有一种更优雅的方法来编写函数!

最佳答案

当您为 p 分配内存时,内存将保存垃圾值。 Strcat 将在空字符后附加一个字符串,但在未初始化的字符串中将包含随机值。

用strcpy替换第一个strcat。

关于C - 创建一个字符串 "from"结构参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718108/

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