我在理解指针
时遇到了一些问题我有矩阵然后我用
将它分成小块 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相同?
答案 0 :(得分:0)
如果我正确理解了这个问题,你可以将Ah传递给你的函数,因为Ah是一个指向小块列表的指针。这会回答你的问题吗?
关于第二个问题,A [k]是地址A + k的值。所以A [k]实际上相当于*(A + k),或相反,&amp;(A [k])相当于A + k。