передать значение указателя в структуру в c - PullRequest
1 голос
/ 01 декабря 2019

Что не так со следующим кодом? Он генерирует ошибку сегментации.

#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;
}

Я хочу создать структуру, которая содержит значение двойного массива, созданного в основной функции. Что с ним не так?

1 Ответ

0 голосов
/ 01 декабря 2019

Вы можете иметь массив указателей в вашей структуре, например, int * [5]. Но вы должны назначить адрес каждой строки в массиве 2D для члена структуры данных.

Также освободите память, выделенную в malloc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...