I am new to C; I have more background knowledge with Java. I want to try searching for value in memory using pointer
#include <stdio.h>
void main(){
    int value = 10;
    find(value);
}
void find(int value){ // will change this to return array of long or int depending on which is better
int* intPointer;
    for(int i = 40000; i <  40400  ; i+= 32){ /* not sure if i do it like this or another way,
                                               * the starting value, ending value and condition
                                               * is just for testing purpose */
        intPointer = (int*)i;
        if(*intPointer == value){
           printf("found value"); //will actually be storing it to an array instead
        }
    }
}
The find method gives me a segmentation fault most likely because the address does not store int value. Is there a way I can find out what type data is stored in the memory address.
Is there  a better way of achieving a similar task? Please explain and show. The actual program will not have int value = ?? instead only the find method will be used to get a array of addresses which contains this value.
Also what is the best type to store addresses int or long?
 
     
     
     
     
    