[1]授業単元:プログラミング演習
[2]問題文(含コード&リンク):
与えられた大きさNバイト(N>1000000)のchar配列をX[N]とする。
X[N]から長さmバイトの部分配列を取得し、それへのポインタを返す関数
char *xmalloc(int m);
を与えよ。ただし、この関数の戻り値pは次の関数
void *xfree(char *p);
を呼び出すまで、xmallocを呼び出しても,p,p+1,p+2,...,p+(m-1)
には一致しないものとする
このような条件を満たすpがない場合はNULLを返すものとする。
[3]環境
[3.1]OS:
[3.2]コンパイラ名とバージョン:
[3.3]言語:C言語(C++負荷)
[4]期限:2014/10/01 12:00まで
[5]その他の制限:
Nはマクロ定数として与えること。
stdlib.h stdio.h string.hを使用できる。他のヘッダファイルや
外部ライブラリ関数の使用はできない。
X=malloc(N);
free(X);
という形でライブラリ関数malloc/freeは使用できるがこの使い方
以外はできないものとする。reallocなどのほかのメモリ
関係の関数も使用できないものとする。