## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# 16.5. Returning a Pointer to a Particular Element in an Array

## Problem

You need to create a method that accepts a pointer to an array, searches that array for a particular element, and returns a pointer to the found element.

## Solution

The `FindInArray` method, shown here, returns a pointer to an element found in an array:

```public unsafe int* FindInArray(int* theArray, int arrayLength, int valueToFind)
{
for (int counter = 0; counter < arrayLength; counter++)
{
if (theArray[counter] == valueToFind)
{
return (&theArray[counter]);
}
}

return (null);
}```

This method is strongly typed for arrays that contain integers. To modify this method to use another type, change the `int*` types to the pointer type of your choice. Note that if no elements are found in the array, a `null` pointer is returned.

The method that creates an array of integers and passes a pointer to this array into the `FindInArray` method is shown here:

```public void TestFind( )
{
unsafe
{
int[] numericArr = new int[3] {2,4,6};
fixed(int* ptrArr = &numericArr[0])
{
int* foundItem = FindInArray(ptrArr, numericArr.Length, 4);
if (foundItem != null)
{
Console.WriteLine(*foundItem);
}
else
{
}
}
}
}```

## Discussion

The `FindInArray` method accepts three parameters. The first parameter, `theArray`, is a pointer to the first element in the array that will be searched. The second parameter, `arrayLength`, is the length of the array, and the final parameter, `valueToFind`, is the value we wish to find in the array `theArray`.

The ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required