2

g 関数内の h 配列の 2 番目の要素を読み取ると、セグメンテーション違反が発生します。奇妙なことに、デバッグ時に実際に配列の内容を見ることができます。データがそこにあることを示すこの奇妙なことに加えて、私は何か間違ったことをしたと思います。前もって感謝します。

#include <iostream>

using namespace std;

void function(void function_passed(double* [], int), int n);

void g(double* [] ,int n_g);

int main()
{
    function(g,5);

    return 0;
}

void g(double* h[], int n_g)
{
    for (int i = 0; i < n_g; i++)
        cout << i << " "<< *h[i] << endl;
}

void function(void function_passed(double* [], int ), int n)
{
    double * h = new double[n];

    for (int i=0;i<n;i++)
        h[i] = i + 10;

    function_passed(&h,n);

    delete[] h;

}



void func(void g(double* [],int n ), int n)
{
    double * h = new double[n];

    for (int i=0;i<n;i++)
        h[i] = i;

    g(&h,n);

    delete[] h;

}
4

1 に答える 1