どのようなパラメータにこの機能を割り当てる必要がありますか?私はそれが文字列の配列を必要と思うが、私は正確な構文を知らない。C文字列配列関数どのように関数を呼び出すのですか?
void write_file(char *result[], int len)
{
..
}
どのようなパラメータにこの機能を割り当てる必要がありますか?私はそれが文字列の配列を必要と思うが、私は正確な構文を知らない。C文字列配列関数どのように関数を呼び出すのですか?
void write_file(char *result[], int len)
{
..
}
実際には文字列配列は必要ありません。 Cでは配列を関数に送ることはできませんし、関数から配列を返すこともできません。溶液? "the"配列の開始点と長さを送ることができます。受信側は "the"配列を理解することができます。あなたの質問については、最初の引数として配列の開始位置を、2番目の引数として配列の長さを送る必要があります。
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
のアドレスであるように私は、「代わりの開始を「ポインタ」を使用したいですポジション"。それはポインタの代わりに0を送る彼につながる可能性があります:) – SenselessCoder