爲什麼我不能使用[] []來訪問萊迪思而不引發seg故障?在二維點陣中訪問元素C
int *LatticeHeight;
int **Lattice;
LatticeHeight = (int*)malloc(Height*sizeof(int));
Lattice = (int**)malloc(Length*sizeof(LatticeHeight));
for(i=0;i<Height; i++)
{
for(j=0; j<Length; j++)
{
Lattice[j][i] = 0;
}
}
我將其解釋爲;
我有指針高度
的一個維陣列。然後我設置格子使得可以存儲LatticeHeight的長度 - 許多拷貝(使網格)
然後我訪問晶格的每個元素並設置它的值設置爲0
而且有人能解釋爲什麼這THR工作在1D但不是在2D,即
for(i=0;i<Height;i++)
{
LatticeHeight[i] = 0;
}
不ow a seg fault
「高度」是行數,而「長度」是列數是用C通常的慣例,我建議採用它可以防止任何人在項目中工作:) – 2014-12-13 03:39:24