将指针值传递到c中的结构中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将指针值传递到c中的结构中相关的知识,希望对你有一定的参考价值。

以下代码有什么问题?它会产生细分错误。

#include <stdio.h>
#include <stdlib.h>

typedef struct
    int ** access;
item;

int main()


    int access[5][5];

    for(int i = 0; i < 5; i++)
        for(int j = 0; j<5; j++)
            access[i][j] = 5;
        
    

    item * p = malloc(sizeof(item));
    p->access = access;

    for(int i = 0; i < 5; i++)
        for(int j = 0; j<5; j++)
            printf("%d",p->access[i][j]);
        
    


    return 0;

我想创建一个结构,该结构包含在主函数中创建的double数组的值。怎么了?

答案

您可以在结构体中拥有指针数组,例如int * [5]。但是您必须在2D数组中分配每行的地址以构造数据成员。

还释放您在malloc中分配的内存。

以上是关于将指针值传递到c中的结构中的主要内容,如果未能解决你的问题,请参考以下文章

C:为啥你可以通过值传递(给函数)一个结构,而不是一个数组?

使用 ctypes 传递结构指针

如何将指向 C# 结构的指针传递给 C 中的方法

c#中值类型与引用类型的值传递与引用传递

在C代码中将结构体变量作为参数传递效率忒低

C++面试题某初创公司的面试题