이것은 구조체를 사용하는 숙제의 일부이며이 기능을 이해하지 못하는 것 같습니다. 함수는 string_t * concat (string_t * s1, string_t * s2)이고 새로운 문자열 struct를 반환합니다. 이것은 내가 지금까지 가지고있는 것이며 컴파일러에 도달 할 때마다 충돌합니다. 프로그램이 컴파일되지만 "file".exe가 작업을 중단 할 때 실행 중 오류가 발생합니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사!C에서이 연결 함수에 어떤 문제가 있습니까?
typedef struct string{ //String struct (in .h file)
char *line;
int length;
} string_t;
string_t* concat(string_t *s1, string_t *s2) { //actual function (in .c)
int len1, len2;
len1 = length(s1);
len2 = length(s2);
int i, j, s;
string_t *newStr;
newStr = (string_t*)malloc(sizeof(string_t)*2);
for (i = 0; i<len1; i++) {
*((newStr->line)+i) = *((s1->line)+i);
}
for (j=0; j<len2; j++) {
*((newStr->line)+(i+j)) = *((s2->line)+j);
}
*((newStr->line)+(i+j))='\0';
return newStr;
}
concat(s1, s2); //tests function
난 당신이 strncpy에서와 strcat와를 검색 좀 당신이 또한 string.length –
에 대한이 size_t를 사용하는 것이 좋습니다 것? std 함수를 사용할 수 있습니까? –
아니요, 제공된 기능을 사용할 수 없습니다. – apkim221