0

Cで次のコードを実行しようとしています:

#include "ex1_1.h"

void path(char **adj_mat, int u, int v)
{
        printf("test\n");
        char temp = *adj_mat[1];
        putchar(temp);
}

int main()
{
    int u = 5;
    int v = 5;
    char mat[5][5]={
    {'0', '1', '1', '1', '0'},
    {'0', '0', '0', '0', '1'},
    {'0', '0', '0', '0', '0'},
    {'0', '0', '0', '0', '0'},
    {'0', '0', '0', '0', '0'}
    };
    char** adj_mat = (char**)&mat;
    printf("Mtest\n");
    path(adj_mat, u, v);
    return 1;
}

「セグメンテーション違反」が発生しています。

理由はわかりませんが、多次元配列ポインターで putchar() を使用する方法に関連していると推測しています。

ありがとう。

4

3 に答える 3