Пожалуйста, посмотрите на следующий код:
#include <stdio.h>
#include <iostream>
using namespace std;
typedef struct MyType{
int num1;
};
void test(MyType **src)
{
MyType *ret=new MyType;
ret->num1=666;
*src=ret;
}
int main(){
MyType *mSrc;
test(&mSrc);
printf("%d Address\n",mSrc);
printf("%d Value \n",mSrc->num1);
}
Мне интересно, если метод test () был реализован следующим образом, почему назначение указателя внутри метода test () не видно вызывающей стороне?
void test(MyType *src)
{
MyType *ret=new MyType;
ret->num1=666;
src=ret; //Why this assignment is only valid inside this method?
}
Как реализовать эту функцию без использования двойного указателя в подписи?