からの入力として char 配列を受け取る関数を作成していますmain()
。この関数は、char へのポインターを返します。次の 3 つの問題があります。
- すべてがうまくいけば、この関数は渡された配列の部分配列へのポインタを返すはずです。この
main()
サブ配列にアクセスできるようにする必要があるためmalloc
、関数で使用してこのグローバル サブ配列を作成できます。 - に空の char 配列を渡す関数が必要
{}
ですmain()
。 - エラー チェックを行うには、
NULL
ポインターを渡す必要があります。2番目の問題についてのみ質問があります。{}
空の文字配列へのポインターをに渡すにはどうすればよいmain()
ですか?
malloc
ここで役立つかどうかはわかりません。
**EDIT**
:
わかりました、私はいくつかの混乱を引き起こしたと思います。正確な問題を特定させてください。という形の関数を書いていますchar * test(char * a, int start, int end, int len)
。これへの典型的な入力は、配列のような配列{'a', 'b', 'c'}
になりますstart = 0
, end = 3
, len = 3
. len
これは入力配列の長さです。start
開始位置です。この例では、その0
が配列の先頭です。現在、end
値は、値から開始し、start
値end
から要素を取得しないことを示していstart
ます。この例では、 から始まり、'a'
そこから 、 、 、 の 3 つの要素を取る'a'
こと'b'
を意味し'c'
ます。そして、そのような選択で新しい配列を形成します。ここで元の配列を取得します。それでは、みましょうa[] = {'a', 'b', 'c'}
。次にtest(a , 0 , 3 , 3)
、へのポインターを返します
{'a', 'b', 'c'}
. 同様に、test(a , 0 , 2 , 3)
は へのポインタを返し{'a', 'b'}
、は へのポインタtest(a , 1 , 2 , 3)
を返します{'b', 'c'}
。今、私は関数がNULL
ポインタを返すようにしたい if (start < 0) || (end < 0) || (0 == len) || (start+ end > len)
. NULL
したがって、次の状況では、関数はポインター
を返します。test(a , 0 , 4 , 3)
test(a , 1 , 3 , 3)
test(a , 2 , 2 , 3)
test(a , 3 , 1 , 3)
test(a , -1 , 2 , 3)
test(a , -1 , -2 , 3)
もしそうならa[] = {}
、test(a , 0 , 1 , 3)
を返す必要がありNULL
ます。私はこれを理解しました。end
値がの場合0
、空の配列へのポインターを返すように機能したいと思います{}
。関数は元の配列を変更してはなりません。
EDIT NO 2:
http://admin.cs.mum.edu/Pretest/sampletest.htmからサンプル問題 3 を実行しています。それが役立つことを願っています...