Ну если прям так придираться, то:
1.
Код:
![Выделить весь код](images/misc/selectcode.png)
cSect=(char*) malloc(strlen(sPtr)+1);
strcpy(cSect,sPtr);
sPtr=strchr(sPtr,'\0')+1;
я бы этот кусок как нибудь упростил, т.к тут используются 2 функции (strlen, strchr) которые совершают 2*N итераций, хотя можно было бы использовать только strchr и длину вычислять не с помощью strlen, а вычитанием sPtr от начального адреса.
Что, касается strcpy, то я лучше бы использовал str
ncpy, т.к. переполнение буфера не кто не отменял (хотя тут мб и не будет такого...).
2.
Код:
![Выделить весь код](images/misc/selectcode.png)
fseek(binFile,atoi(cKey),0);
Уверены, что в cKey всегда будет строка из цифр?
3.
Вызываем malloc, но забываем вызвать free.