C 编程中的多个指针[已关闭]

问题描述 投票:0回答:1

我们如何创建一个矩阵并使用指针和双指针来使用它,为什么我看到一些开发人员甚至使用超过 2 个指针? 例如我想让一个数组包含多个数组,如 [[1,2,3],[4,5,6]] 我如何正确使用指针和双指针?

#include <stdio.h>
void main(void){
       int **dptr, rows = 3, columns = 2;

       dptr = (**int)malloc(2 * sizeof(int*));

       for(int i = 0; i < rows; i++)
           dptr[i] =(*int)malloc( columns * sizeof(int));

       // Do something here
       
       for(int j = 0; j < rows; j++)
          free(dptr[j]);
       free(dptr);


}

这个正确吗?

c pointers double-pointer
1个回答
1
投票

您的代码已按顺序放回:

#include <stdlib.h>

int main(void)
{
    int **dptr = malloc(2 * sizeof(int*));

    dptr[0] = malloc(3 * sizeof(int));
    dptr[1] = malloc(3 * sizeof(int));
    
    // Uses here

    // free here  
    return 0;
}

无需转换 malloc 的返回值 您当然可以使用循环来创建更大的数组。

© www.soinside.com 2019 - 2024. All rights reserved.