So what I want to do is something like that: void function(char
*ar[]){ int main(){         char str[100][200];
function(str);         //wrong  I mean I want to have a function
to which i can pass a 2d array and it ll make some changes to
it. I do not want a function with a 2d array argument cause i do
not want to set the size of array explicitly, so I believe this
is the only way. The thing is that   is wrong and I get a
warning during compile:  test.c:9: warning: passing argument 1
of function from incompatible pointer type  so what I 'm asking
is, what is the right way to call function on this array or/and
if there is another way to do all this.