I'm trying to return the pointer to the variable that has the bigger value using pointers & and *. Below is the source code for my main.cc, functions.cc, and functions.h files. What did I do wrong here? I have also posted the error that it gave me.
ERROR STATEMENT:
functions.cc:9:10: error: cannot initialize return object of type 'int *' with
an lvalue of type 'int'
return *a;
^~
functions.cc:11:10: error: cannot initialize return object of type 'int *' with
an lvalue of type 'int'
return *b;
^~
2 errors generated.
make: *** [functions.o] Error 1
main.cc
functions.cc
functions.h
ERROR STATEMENT:
functions.cc:9:10: error: cannot initialize return object of type 'int *' with
an lvalue of type 'int'
return *a;
^~
functions.cc:11:10: error: cannot initialize return object of type 'int *' with
an lvalue of type 'int'
return *b;
^~
2 errors generated.
make: *** [functions.o] Error 1
main.cc
Code:
#include <string>
#include <cstdio>
#include <vector>
#include "functions.h"
using namespace std;
int main( int argc, char** argv ) {
int x = 100;
int y = 200;
int result = 0;
// find out which of the two variables (x and y) is the largest
pointerToMax(&x, &y);
}
functions.cc
Code:
#include <string>
#include <cstdio>
#include <vector>
#include "functions.h"
using namespace std;
int* pointerToMax(int* a, int* b) {
if(a > b) {
return *a;
} else {
return *b;
}
} // end of pointerToMax
functions.h
Code:
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
int* pointerToMax(int* a, int* b);
#endif