0

我在理解指针方面有一些问题

我有矩阵然后我通过使用将它分成小块

 tiles_num = n /tile;
// Allocate blocked matrix
Ah = (REAL **) malloc( tiles_num *  tiles_num * sizeof(REAL *));
if (Ah == NULL) {
    printf("ALLOCATION ERROR (Ah)\n");
    exit(-1);
}

for (j = 0; j <  tiles_num *  tiles_num; j++) {
    Ah[j]=(REAL *) malloc(tile * tile * sizeof(REAL));
    if (Ah[ j ] == NULL) {
        printf("ALLOCATION ERROR (Ah[%d] )\n", j);
        exit(-1);
    }
}

其中(tiles_num是小块的数量,n是矩阵的一维大小,tile是小块的大小)

之后我想给一个函数一个指向超级块开始的指针,然后函数将在小块之间移动,例如如果我有 N=12 和超级块=4 和小块=2。1-那么我怎样才能给出启动超级块的功能点,然后通过小块向内移动?

2-我想知道 A[k] 是否与 A+k 相同以引用?

4

1 回答 1

0

如果我正确理解了这个问题,您可以将 Ah 传递给您的函数,因为 Ah 是指向小块列表的指针。这是否回答你的问题?

关于第二个问题,A[k] 是地址 A+k 的值。所以 A[k] 实际上等价于 *(A+k),或者相反,&(A[k]) 等价于 A+k。

于 2012-04-30T01:31:38.160 回答