I've got a slight problem with a function I'm writing. I'm trying to pass a 2d array to a function whose sole purpose is to display the contents of said array. Now, what I'm about to give you all compiles, but my compiler (bloodshed's dev-c++ v4.9.9.2) is giving me "warnings". I'd rather not have any warnings in this program. I'm picky like that. And yes, I am compiling into c and not c++.
Here is the relevant code (the whole being 545 lines), any help would be much appreciated:

#include <stdio.h>
#include <stdlib.h>

const int size = 3; //global constant

int printBoard(const int[][]); //prototype

int main()
{
    int board[size][size];
    //for loops for initializing array
    printBoard(board);
    return 0;
}

int printBoard(const int board[size][size])
{
    //135 lines of code for displaying the array
    return 1;
}

any time i try to change the prototype and function to "const int**" or even "const int*[]", the program hangs for a sec, then crashes. I'm assuming it's because the pointer is accessing a restricted memory location, but that's something else entirely.
Please note: in the code, i access the array via "board[0][1]" and such. If that is another possible problem, please let me know.
The exact error message I get is as follows:
"[Warning] passing arg1 of 'printBoard' from incompatible pointer type"

help plz and thanks

>>my compiler (bloodshed's dev-c++ v4.9.9.2)

Upgrade to Code::Blocks and MinGW compiler because its more current then the version you are using


>>int printBoard(const int[][]); //prototype

Change that to remove the const attribute. With 2d arrays the second array can not be left without a size. int printBoard(int[][size]); //prototype

This has removed all my error messages. Thanks!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.