I have a pointer array, and I want to set all values to 0
.
Here is my code:
#define EMPTY 0
void initBoard(int *ptr, int n){
n = n * n;
ptr = (int*)malloc(n*sizeof(int));
int i = 0;
for(i;i<n;i++){
*ptr = EMPTY;
*ptr++;
}
i = 0;
for(i;i<n;i++){
printf("%d\n",*ptr);
*ptr++;
}
}
when running this code, I expect to get (N == 0):
0
0
0
0
instead I get this:
394066110
7321
6890384
6881472
Why am I getting this?
EDIT:
void printBoard(int *ptr){
printf("%d - %d - %d\n", ptr, ptr+1, ptr+2);
printf("%d - %d - %d\n", ptr+3, ptr+4, ptr+5);
printf("%d - %d - %d\n", ptr+6, ptr+7, ptr+8);
}
will print out:
0 - 4 - 8
12 - 16 - 20
24 - 28 - 32
here is how it looks when i call the funtion:
int *ptr, win = 0;
initBoard(*ptr);
printBoard(*ptr);
EDIT 2:
#include <stdio.h>
#include <stdlib.h>
//define
#define EMPTY 0
#define CROSS 1
#define CIRCLE 2
#define NO_WIN 0
#define PLAYER_WIN 1
#define COMPUTER_WIN 2
#define DRAW 3
//funktioner
void printBoard(int *ptr);
int checkWin(int *ptr);
void computerMove(int *ptr);
void initBoard(int *ptr);
int main()
{
int *ptr, win = 0;
initBoard(*ptr);
printBoard(*ptr);
return 0;
}
void printBoard(int *ptr){
printf("%d - %d - %d\n", ptr[0], ptr[1], ptr[2]);
}
int checkWin(int *ptr){
return 0;
}
void computerMove(int *ptr){
}
void initBoard(int *ptr){
ptr = malloc(9*sizeof(int));
int i = 0;
//int *orig = ptr; //spara pointern
for(i;i<9;i++){
*ptr = EMPTY;
ptr++;
}
}