문제는 포인터의 배열을 다루는 것이 실제로 뜨겁지 않다는 것입니다. 내가하는 일은 배열의 주소로 전달되므로 주소가 항상 들어갑니다. 모든 위치, 마지막 입력. 하지만 * 연산자를 사용하면 첫 번째 문자 만 전달합니다. 그래서 어떻게할까요 ??포인터의 배열에 입력 문자열
int main(void) {
void prompt_str(const char *str[], char *const copy); //prototype
const char *str[ 20 ]= { '\0' };
const char *copy= 0;
//prompt stringa
prompt_str(str, ©);
} //end main
void prompt_str(const char *str[], char *const copy) { //definition
size_t n_str= 0, i= 0;
do {
printf("Insert a string\n:");
fgets(copy, 100, stdin);
i= (strlen(copy)- 1); //get length
copy[ i ]= '\0'; //remove \n
str[ n_str++ ]= copy; //put string into pointer of array
} while (n_str< 3);
}
,'->'문자 복사 [100]' –
@ KeineLust 사실이 아니야 .. 복사본에 원인이 내가 문자열을 얻을, 난 정의 된 배열을 사용하지 않으려 고, 그것을 낭비 공간 원인, 숯불에 대한 포인터와 함께, 그걸 입력 요소를 소요됩니다. – dnt994
좋아요, 주소에 100 바이트를 저장하는 행운을 빕니다. –