からの入力として 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 を実行しています。それが役立つことを願っています...