我在理解指针时遇到了一些问题
我有一个矩阵,然后我把它分成小块,用
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,superblock=4和smallblock=2。1-那么我如何才能给出开始超级块的函数点,然后在小块中移动?
2-我想知道Ak是否与A+k相同?
发布于 2012-04-30 09:31:38
如果我没理解错的话,你可以把Ah传递给你的函数,因为Ah是一个指向小块列表的指针。这回答了你的问题吗?
关于你的第二个问题,Ak是地址A+k的值,所以Ak实际上等同于*( A+k ),或者相反,&(Ak)等同于A+k。
https://stackoverflow.com/questions/10377344
复制相似问题