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