我是C的新手。我在一个程序中看到了这一行:
grid = calloc(nx,sizeof(int**));
我读到int**
表示指向指针的指针,但是sizeof(int**)
是什么意思
答案 0 :(得分:3)
sizeof
运算符产生其操作数所需的存储字节数。操作数是括在括号中的表达式或类型。在这种情况下,操作数是类型int **
,它是指向int
"的指针。
假设grid
已被声明为
int ***grid;
然后可以重写为
grid = calloc(nx, sizeof *grid);
答案 1 :(得分:2)
sizeof
表达式只是表示指向指针的指针所需的字节数 - int
。据推测,编写代码的人希望分配足够的内存来存储nx
这样的指针。
答案 2 :(得分:1)
sizeof(int **)
告诉您int **
的字节数,与sizeof(int *)
告诉您int *
的字节数的方式类似。他们只是有不同的间接层次。