$ cat foo.cpp
typedefunsignedint u32;
#define Words_per_Channel 30
#define Rx_num 30
u32 Recv_Array[Rx_num][Words_per_Channel];
int ArincResultsTest(u32 Recv_Array[Rx_num][Words_per_Channel]){
return 0;
}
int main ( ) {
ArincResultsTest(Recv_Array);
}
$ g++ foo.cpp
> cannot convert 'u32 (*)[30]' {aka 'unsigned int (*)[30]'} to 'u32* (*)[30]' {aka 'unsigned int* (*)[30]'}
Check what you actually wrote.
Somewhere it seems to be expecting a 2D array of u32 pointers, not a 2D array of u32.
Random line snippets of what you think you have are no substitute for http://www.sscce.org/
It doesn't take much to make a program to prove/disprove your point.
> I wonder what is the difference now?
Dunno, I wasn't watching you edit the files.
https://git-scm.com/
If you don't have something like this to manage your programming, you need it. git add and git commit after every change that works. git diff for say comparing what worked with what broke. git branch for when a change is experimental, or takes some time.
There's a lot of tools in that particular toolbox, but with those few commands you can get something useful out of it.
The last thing you want is to have a single body of code that you've worked on for months, only for you to then make some change that breaks it and have no idea what you did to break it.