我可不可以不要寫這種 code?
我可不可以不要寫這種 code?
#define NUM 5
int main()
{
FooParam param;
memset(¶m, 0, sizeof(param));
param.size = sizeof(param);
param.num = NUM;
param.results = (FooResult**)malloc(NUM * sizeof(FooResult*));;
FooResult* results_body = (FooResult*)malloc(NUM * sizeof(FooResult));
for (int i = 0; i < NUM; ++i) {
param.results[i] = &(results_body[i]);
}
// param didn't take results_body with it, who could free(results_body)??
if (!FooRun("filename", ¶m)) {
goto err_out;
}
ShowFooResult(param.results);
err_out:
if (param.results) {
free(param.results[0]); // Why don't we free(param.results[1]), too???
free(param.results);
}
return 0;
}
真是難看懂的 code。
Post a Comment