Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Pointer to function (http://www.go4expert.com/forums/pointer-to-function-t24694/)

theimmortalbg 23Jan2011 18:39

Pointer to function
hello this is my program


#include "stdafx.h"
#include <iostream>
using namespace std;

bool isOdd(const int* item)
return (*item)%2;

int deleteItems (int *array, int itemSize, int itemsCount, bool (*shouldDeleteItem)(const int*))
for(int i=0; i<itemsCount; i++)
cout<< shouldDeleteItem (array+i)<< endl;       

return itemsCount*itemSize;

void main()
int *p = NULL;
int n;
cout<< "Enter length of array: ";
cin>> n;
p = new int [n];

cout<< "Numbers in the array: ";
for(int i=0; i<n; i++)
cin>> *(p+i);

for(int i=0; i<n; i++)
deleteItems(p, sizeof(p+i), n, isOdd(p+i));

I am trying to call the function deleteItems(int *array, int itemSize, int itemsCount, bool (*shouldDeleteItem)(const int*)) but i can't. Compiler says cannot convert parameter 4 from bool to bool(_cdecl*)(const int *). How i can call delleteItems with last parameter isOdd(p+i). Thanks

jimblumberg 24Jan2011 00:25

Re: Pointer to function
You should just be passing the function pointer like:

deleteItems(p, sizeof(p+i), n, isOdd)


All times are GMT +5.5. The time now is 01:59.