C言語なら俺に聞け(入門編)Part 105
■ このスレッドは過去ログ倉庫に格納されています
0573デフォルトの名無しさん
2012/08/19(日) 00:58:14.50int i, j;
} MyClass;
// 仕様の事情でi + j < 100でないといけないとする
int NewMyClass(MyClass ** obj, int i, int j) {
assert(obj);
if(*obj) { return ERROR_MAY_NOT_BE_EMPTY; } // バッファポインタのNULL初期化を要求
if(!(i + j < 100)) { return ERROR_INVALID_ARG; } // 引数のチェック
{
MyClass * temp = (MyClass *) calloc(1, sizeof(MyClass));
if(!temp) { return ERROR_BAD_ALLOC; } // メモリ足りない?
temp->i = i; temp->j = j;
*obj = temp;
return NO_ERROR; // 成功!
}
}
int main(void) {
MyClass * p = NULL; int res;
if((res = NewMyClass(&p, 10, 5)) == NO_ERROR) { /* 正常処理 */ }
else {
switch(res) {
// エラーコード別にエラー処理分岐
}
}
free(p);
return 0;
}
こういうコード書くとして直接mallocとかリターンでポインタ返すカスはどうやって書いてんの?ん?
まさかクライアントコードにダラダラ書くつもり?
■ このスレッドは過去ログ倉庫に格納されています