어떤 매개 변수에이 기능을 부여해야합니까? 문자열 배열이 필요하다고 생각하지만 정확한 구문을 모르겠습니다.C 문자열 배열 함수 어떻게 함수를 호출합니까?
void write_file(char *result[], int len)
{
..
}
어떤 매개 변수에이 기능을 부여해야합니까? 문자열 배열이 필요하다고 생각하지만 정확한 구문을 모르겠습니다.C 문자열 배열 함수 어떻게 함수를 호출합니까?
void write_file(char *result[], int len)
{
..
}
사실상 문자열 배열이 필요 없습니다. C에서는 배열을 함수에 보낼 수 없으며 함수에서 배열을 반환 할 수도 없습니다. 해결책? "the"배열의 시작점과 길이를 보낼 수 있습니다. 그러면 수신기 쪽에서 "the"배열을 이해할 수 있습니다. 귀하의 질문에 대해서는 배열의 시작 위치를 첫 번째 인수로, 배열의 길이를 두 번째 인수로 보내야합니다.
char *result[]
은 char
에 대한 포인터의 배열을 의미합니다. 그러나 질문은 매개 변수 len
의 의미는 무엇입니까?
일반적으로 write_file()
과 같은 함수를 사용하면이 함수는 문자열을 출력에 쓰고 len
매개 변수는 쓸 문자 수입니다. 같은
char *myStrings[] = {
"string 0",
"string 1"
};
write_file (myStrings, 0); // passing zero as len as unsure what it is.
또는 뭔가 :
같은 것을 의미 기능의 모습으로이 기능을 사용하려면char *myStrings[20]; // array of pointers to chars
int iLoop;
for (iLoop = 0; iLoop < 20; iLoop++) {
myStrings[iLoop] = malloc(1000); // allocate a large buffer for each string
read_string (myStrings[iLoop], 1000); // some made up function to read a string
}
write_file (myStrings, 20);
내가 의심 것은 함수는 실제로 void write_file(char *result, int len)
해야하거나이되어야한다고 void write_file(char result[], int len)
그래서 char 배열에 대한 포인터의 배열 (C에서 문자열이 일반적으로 사용되는 방법)을 받아들이는 대신 char 배열에 대한 포인터를 받아 들여야합니다.
따라서 write_file()
의 아이디어는 여러 문자열이 아닌 파일에 단일 문자열을 쓰는 것입니다.
char result[10];
write_file(&(result[0]), 10);
또는 배열 식별자로서, 동일
char result[10];
write_file(result, 10);
는
당신을 위해 도움이되었다 대답을 받아 upvote 고려하십시오. – MarianD
혼동을 피하기 위해 I 대신 시작 "의"포인터 "를 사용하려는 단순히 첫 번째 요소의 주소 위치". 그 포인터 대신 0을 보내는 그를 이끌 수 있습니다 :) – SenselessCoder