gil*_*rtc 2 c++ memory pass-by-reference
假设,
void proc(CString& str)
{
str = "123";
}
void runningMethod()
{
CString str="ABC";
proc(str);
}
Run Code Online (Sandbox Code Playgroud)
据我所知,在runningMethod str的出口会自动解除分配; 在这种情况下,C++如何删除旧数据("ABC")?
谢谢,
吉尔.
"ABC"当你说时被覆盖了= "123".
在内部,字符串是一个字符数组.一开始,它创建了一个包含的新缓冲区{'A', 'B', 'C', '\0'}.当你分配时,它只是写'1'了'A',等等.
当它被破坏时,它删除了缓冲区.
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |