>我在理解指针时遇到一些问题
我有矩阵,然后我使用
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是矩阵的一维大小,瓦片是小块的大小(
之后,我想给一个函数一个指向超级块开始的指针,然后函数将在小块之间移动例如,如果我有 N=12,超级块=4 和小块=2。1-那么我如何给出启动超级块然后通过小块向内移动的功能点?
2-我想知道 A[k] 是否与引用的 A+k 相同?
如果我正确理解了这个问题,你可以将 Ah 传递给你的函数,因为 Ah 是指向小块列表的指针。 这能回答你的问题吗?
关于你的第二个问题,A[k] 是地址 A+k 的值。 所以 A[k] 实际上等价于 *(A+k(,或者相反,&(A[k]( 等价于 A+k。