アイテム:
一連のカウンターを保持するプログラムを作成するように指示した場合、カウンターの数はユーザーがプログラムを開始したときに入力されます。これを、ヒープに割り当てられた整数の配列でコーディングします。
int *counters = malloc(numOfCounters * sizeof(int));
Malloc はメモリを直接操作するため、本質的にポインターを返します。すべての Objective-C オブジェクトは でヒープ割り当てされるmalloc
ため、これらは常にポインターです。
アイテム:
ファイルを読み取り、それが完了したときに別の関数を実行する関数を作成するように言ったらどうなるでしょうか。しかし、この別の機能は不明であり、私が知らない他の人によって追加されることになりました。
このために、「コールバック」があります。次のような関数を記述します。
int ReadAndCallBack(FILE *fileToRead, int numBytes, int whence, void(*callback)(char *));
最後の引数は関数へのポインタです。誰かがあなたが書いた関数を呼び出すとき、彼らは次のようなことをします:
void MyDataFunction(char *dataToProcess);
ReadAndCallBack(myFile, 1024, 0, MyDataFunction);
アイテム:
関数の引数としてポインターを渡すことは、関数から複数の値を返す最も一般的な方法です。OSX 上の Carbon ライブラリでは、ほとんどすべてのライブラリ関数がエラー ステータスを返します。これは、ライブラリ関数がプログラマに役立つものを返さなければならない場合に問題を引き起こします。したがって、関数に情報を返してもらいたいアドレスを渡します...
int size = 0;
int error = GetFileSize(afilePath,&size);
関数呼び出しがエラーを返す場合、それは にあり、エラーがerror
なければ、error
おそらくゼロであり、size
必要なものが含まれます。