"에서"문자열을 만들 수는C - 구조체 매개 변수
typedef struct person {
char name[20]
char surname[20]
} person_t;
내가 char* personToString(person_t *p)
같은 기능을 XXXXXX:YYYYYY
같은 문자열을 만들 필요가 되세요. 나는 그것을 만들려고 노력했다 :
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로 테스트하는 약간의 오류가있다! 나는 또한 기능을 작성하는 더 고상한 방법이 있다고 생각합니다!
질문과 관련된 오류를 포함하십시오. – dandan78
당신은'sprintf (p, "% s : % s", p-> 이름, p-> 성);'와 같은'strcat' 대신에'sprintf'를 사용할 수 있습니다. 'char *'로 선언하면''char * ''가되지 않는다. – Opsenas
'sizeof (char)'는 항상'1'이기 때문에 필요하지 않다. –