THE*_*TOR 4 c c++ crash pointers
假设一个函数返回一个固定的"随机文本"字符串就像
char *Function1()
{
return “Some text”;
}
Run Code Online (Sandbox Code Playgroud)
如果它意外地试图改变价值,程序可能会崩溃
Function1()[1]=’a’;
Run Code Online (Sandbox Code Playgroud)
函数调用尝试执行此操作后的方括号会导致程序崩溃吗?如果您对此熟悉,我们将非常感谢您的解释!
Die*_*lla 12
您在函数中返回的字符串通常存储在进程的只读部分中.尝试修改它将导致访问冲突.(编辑:严格来说,它是未定义的行为,在某些系统中它会导致访问冲突.谢谢,约翰).
这种情况通常是因为字符串本身与应用程序的代码一起被硬编码.加载时,会建立指针以指向包含文字字符串的进程的只读部分.实际上,无论何时在C中写入一些字符串,它都被视为const char*(指向const内存的指针).
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |