0
나는 C에서 다음 함수를 작성하려고에에서는 StrDup를 만들는 C
char* modelstrdup(char* source);
기능은 표준 C 라이브러리 함수 strdup
을 모방해야한다. 매개 변수는 복제하려는 문자열입니다. 반환 된 포인터는 힙을 가리킬 것입니다. 이 함수를 작성할 때 소스 사본을 보유하는 힙에 구조 string
을 작성하십시오. 문자열의 길이와 용량을 소스에있는 문자 수와 같게 설정하십시오. 문자열을 구조 문자열의 주소가 아닌 첫 번째 문자로 반환하십시오.
...
//Client Program Format only, will not work!
char* s; // should be “yo!” when we‟re done
String* new_string = malloc(sizeof(String) + 10 + 1);
(*new_string).length = 3; // 3 characters in “yo!”
(*new_string).capacity = 10; // malloced 10 bytes
(*new_string).signature = ~0xdeadbeef;
(*new_string).ptr[0] = „y‟;
(*new_string).ptr[1] = „o‟;
(*new_string).ptr[2] = „!‟;
(*new_string).ptr[3] = 0;
s = (*new_string).ptr;
printf(“the string is %s\n”, s);
어떤 제안이 유일한 힌트는 내 교수는 내게 준,하지만 난 어디서부터 시작 해야할지 모르겠어? 고맙습니다!
이 질문은 매우 명확하지 않다. 문제의 어떤 부분에 문제가 있는지 알려주실 수 있습니까? –
'(* new_string) .ptr [1] = "o";'Yikes! ''''과''''를 어디서 얻었습니까? – pmg
@pmg - OP가 사용하고있는 자르기 및 붙여 넣기 또는 키보드의 기능으로 생각됩니다. – ChrisF