我在函数中定义了一个对象:
SoundFXSystem* Engine::GetSystem(){
SoundFXSystem system; // var defined inside a function
sEngine->GetSystem(&system);
return &system; // can I return the address of the var?
}
返回 var 的地址并稍后在程序中使用它是否合法?当函数退出并且调用者无法使用它时,它会立即超出范围吗?
编辑:如果我按如下方式定义对象,它会被动态分配吗?
SoundFXSystem* Engine::GetSystem(){
SoundFXSystem* system = new SoundFXSystem(); // var defined inside a function
sEngine->GetSystem(&system);
return system;
}