C块分区c语言

时间:2012-04-30 00:52:15

标签: c

我在理解指针

时遇到了一些问题

我有矩阵然后我用

将它分成小块
 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相同?

1 个答案:

答案 0 :(得分:0)

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

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