传递指针作为参数,占用内存

时间:2019-06-15 11:45:29

标签: c pointers memory

我有一个关于指针的问题。

这两个选项在内存使用方面有何区别?我已经尝试过,记忆方面没有任何改变。我以为第一个会收到一个指向分配的内存地址的指针,第二个会收到一个副本。

    check_ret = check_tetrimino(&grid, *curr, ind_y, ind_x);
int         check_tetrimino(char ***grid, t_tetrimino curr, int ind_y, int ind_x)

    check_ret = check_tetrimino(grid, *curr, ind_y, ind_x);
int         check_tetrimino(char **grid, t_tetrimino curr, int ind_y, int ind_x)

1 个答案:

答案 0 :(得分:1)

在两种情况下都是指针。 char ***是一个指针,char **也是一个指针,并且它们都具有相同的大小:

sizeof(char**) == sizeof(char***)

因此,在两种情况下,为两个不同的函数调用复制的字节数相同。显然,函数接收的指针指向不同的事物,但这不会改变函数参数的大小。