#include <stdio.h>
#include <stdlib.h>
enum { FAIL, SUCCESS };
int double_min_max(int **range, int min, int max){
if(!range || min > max)
return FAIL;
size_t n = max - min + 1;
*range
= malloc(n
* sizeof(**range
)); if(!*range)
return FAIL;
for(int i = 0; i < n; ++i)
(*range)[i] = min++;
return SUCCESS;
}
int main(void) {
int *range;
if(double_min_max(&range, 10, 20)){
for(int i = 0; range[i] != 20; ++i)
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmVudW0geyBGQUlMLCBTVUNDRVNTIH07CgppbnQgZG91YmxlX21pbl9tYXgoaW50ICoqcmFuZ2UsIGludCBtaW4sIGludCBtYXgpewoJaWYoIXJhbmdlIHx8IG1pbiA+IG1heCkKCQlyZXR1cm4gRkFJTDsKCXNpemVfdCBuID0gbWF4IC0gbWluICsgMTsKCSpyYW5nZSA9IG1hbGxvYyhuICogc2l6ZW9mKCoqcmFuZ2UpKTsKCWlmKCEqcmFuZ2UpCgkJcmV0dXJuIEZBSUw7Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKQoJCSgqcmFuZ2UpW2ldID0gbWluKys7CglyZXR1cm4gU1VDQ0VTUzsKfQoKaW50IG1haW4odm9pZCkgewoJaW50ICpyYW5nZTsKCWlmKGRvdWJsZV9taW5fbWF4KCZyYW5nZSwgMTAsIDIwKSl7CgkJZm9yKGludCBpID0gMDsgcmFuZ2VbaV0gIT0gMjA7ICsraSkKCQkJcHJpbnRmKCIlZCAiLCByYW5nZVtpXSk7CgkJcHJpbnRmKCIlZFxuIiwgMjApOwoJCWZyZWUocmFuZ2UpOwoJfQoJcmV0dXJuIDA7Cn0K