void myfun(double * A)
{
A = new double[100];
A[0] = 123;
}
void main()
{
double * A;
myFun(A);
}
一個像上面的程式,在main中的A[0]在呼叫myfun後依然無法取得,原因是因為傳入的double * A是個固定的指標,但在myfun中的A = new double[100];卻會對A*進行修改,因此需要修改傳入值為double * &A其他部分不需要修改
當然也可以用double ** A
但這樣需要修改成
void myfun(double ** A)
{
*A = new double[100];
*A[0] = 123;
}
void main()
{
double * A;
myFun(&A);
}
沒有留言:
張貼留言