我试图将一个二维数组传递给一个接受指向指针的指针的函数。而且我了解到二维数组不是指向指针的指针(指向一维数组的指针)。当我编译下面的代码时,我收到了这个错误。
#include<iostream>
void myFuntion(int **array)
{
}
int main()
{
int array[][]= {{1,2,3,4},{5,6,7,8,9},{10,11,12,13}};
myFuntion(array);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在函数“int main()”中:第 5 行:错误:将“数组”声明为多维数组必须具有所有维度的边界,但由于 -Wfatal 错误而终止的第一次编译除外。
如果可能的话,任何人都可以清除我对此的疑虑和一些文档,以消除我的更多疑虑。
我想知道为什么在下面的程序中sizeof(int)返回一个不同的值sizeof(int*).
这是一个小程序:
int main(){
std::cout<<sizeof(int)<<endl;
std::cout<<sizeof(int*)<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
4
8
Run Code Online (Sandbox Code Playgroud)
直到现在我记得整数指针的大小是4byte(gcc编译器).如何检查指针的正确大小?它依赖于计算机吗?
我正在运行ubuntu 12.04
# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
Run Code Online (Sandbox Code Playgroud)
指针的大小是不是常量(标准大小)8个字节.