I am learning functions in C and having following problem with so many warnings :-(
code is as follows
#include <stdio.h>
void main(){
    int a,c;    
    char *b;    // declaring a pointer 
    char string[100]="something";
    b = string;     // assigning a pointer.. doing
    printf("\n %s \n\n %s",string,*b); // doing this as a verification of the pointer, which is good - no seg faults 
    printf("Enter a and c:-");  
    scanf("%d %d",&a,&c);
    find(a,c,*b);
    printf("%s",*b);//segmentation fault core dumped:-'(
}
void find(int x, int y,char  *b){
    if(x>y)
        *b = "a is greater than b";
    else if(x=y)
        *b = "both the values are equal";
    else
        *b = "b is greater than a";
}
warnings while compiling:--
function.c: In function ‘main’:
function.c:7:2: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
  printf("\n %s \n\n %s",string,*b); /*doing this jus to check is pointer working but no it is           *not.segmentation error here "core dumped":-'( 
  ^
function.c:12:2: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
  printf("%s",*b);//segmentation fault core dumped:-'(
  ^
function.c: At top level:
function.c:14:6: warning: conflicting types for ‘find’ [enabled by default]
 void find(int x, int y,char  *b){
      ^
function.c:11:2: note: previous implicit declaration of ‘find’ was here
  find(a,c,*b);
  ^
function.c: In function ‘find’:
function.c:16:6: warning: assignment makes integer from pointer without a cast [enabled by default]
   *b = "a is greater than b";
      ^
function.c:18:6: warning: assignment makes integer from pointer without a cast [enabled by default]
   *b = "both the values are equal";
      ^
function.c:20:6: warning: assignment makes integer from pointer without a cast [enabled by default]
   *b = "b is greater than a";
while running
- segmentation error (core dumped)
Working cod:=---- with the help of community
#include <stdio.h>
#include <malloc.h>
void main(){
    int a,c;    
    char *b =(char *)malloc(100);       
    char string[100]="something";
    b = &string;    
    printf("\n %s \n\n %s",string,b);
    printf("Enter a and c:-");  
    scanf("%d %d",&a,&c);
    find(a,c,*b);
    printf("\n%s",b);
}
void find(int x, int y,char  *b){
    if(x>y)
        b = "a is greater than b";
    else if(x=y)
        b = "both the values are equal";
    else
        b = "b is greater than a";
}
output:- something
something enter a and c:- 10
20
something
**
- means still it is not updating the value in the function...
**
 
     
    