I'm using this function to iterate any array:
void iterate(int len, int arr[], void (*pointer) (int, int) ) {
for (int i = 0; i < len; ++i) {
pointer(i, arr[i]);
}
}
but in my inner function:
pointer(i, arr[i]);
I'm unable to modify arr[i] and assign it a new value. this is my code:
void iterate(int len, int arr[], void (*pointer) (int, int) ) {
for (int i = 0; i < len; ++i) {
pointer(i, arr[i]);
}
}
void setCode(int index, int value) {
cout << "[" << index << "]: ";
cin >> value;
}
void showCode(int index, int value) {
cout << index << " ---- " << value << endl;
}
int main() {
int len;
cout << "length: ";
cin >> len;
int code[len];
void (*setCodePointer) (int, int) = setCode;
void (*showCodePointer) (int, int) = showCode;
iterate(len, code, setCodePointer);
iterate(len, code, showCodePointer);
}
If I execute and set length to 2
position [0] to 1 and [1] to 2
I get:
0 ---- 1495894288 (should be 1)
1 ---- 32767 (should be 2)