I have an array of structs and I want to B-Search these by a value inside of them. I am having trouble because I need to return the index (not address) after searching through the array of structs (typedef structs). This is what I have, and I am not sure my logic behind it is even right. Can somebody please help.

Code:int findValue(StructType * const array[], int size, const String target) { StructType * leftPtr = * array; StructType * rightPtr = (* array) + size - 1; // error for the + sign StructType * midPtr; while (strcmp((*leftPtr).value, (*rightPtr).value) <= 0) { midPtr = (leftPtr + rightPtr) / 2; while(strcmp((*midPtr).value, target) < 0) { leftPtr = midPtr + 1; midPtr = (leftPtr + rightPtr) / 2; } if (strcmp((*midPtr).value, target) == 0) return midPtr - array; } return -1; }