C 块划分 C 语言

  • 本文关键字:语言 划分 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是矩阵的一维大小,瓦片是小块的大小(

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

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

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

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

最新更新