Javascript gcc-还原编译器';如何使内存块保持恒定?

Javascript gcc-还原编译器';如何使内存块保持恒定?,javascript,c++,c,pointers,constants,Javascript,C++,C,Pointers,Constants,有没有一种方法可以在编译语言中这样的程序执行过程中,以某种方式删除内存地址上的常量锁 const int value = 100; 在程序执行过程中,是否有办法从&value地址中删除常量锁 像JavaScript这样的语言我们也可以使变量保持不变 const值=100; 有没有一种方法可以让我从内存中删除常量锁,它曾经是常量,JavaScript是一种解释语言,所以我想可能会有一些黑客可以做类似的事情 程序终止后,该块会发生什么情况 操作系统决定了进程的运行情况。当程序终止时,操作系统将清

有没有一种方法可以在编译语言中这样的程序执行过程中,以某种方式删除内存地址上的
常量

const int value = 100;
在程序执行过程中,是否有办法从
&value
地址中删除
常量

像JavaScript这样的语言我们也可以使变量保持不变

const值=100;
有没有一种方法可以让我从内存中删除
常量
锁,它曾经是
常量
,JavaScript是一种解释语言,所以我想可能会有一些黑客可以做类似的事情

程序终止后,该块会发生什么情况

操作系统决定了进程的运行情况。当程序终止时,操作系统将清除为程序分配的所有内存,而不管该内存用于什么用途。
const
的概念与此无关

编译器是否能够从特定块中删除常量限定符?我可以覆盖那块内存吗?如果可以,我怎么能显式地覆盖呢

不能更改变量的声明方式。它的一生都是这样。你将无法做到这一点,即使那样,你也必须试着去做

如果我需要覆盖
const
内存块,该怎么办?有办法吗

如果您需要这样做,那么您正在编写的任何程序的逻辑都是有缺陷的。你不能也不应该这样做。这是一种未定义的行为,在最好的情况下,它会以一个错误终止您的程序


好的,如果您真的想用写入
常量
变量导致的分段错误终止程序,假设您的编译器将全局
常量
变量放在只读部分(例如
.rodata
),那么以下内容就足够了:

const static int global=123;
内部主(空){
int*ptr=(int*)和全局;
*ptr=456;
//或同等
常量int*ptr2=&global;
*(int*)ptr2=456;
}

您需要“抛弃”const限定符,以便编译器不会将其视为错误。同样,这仅在编译器将
全局
放入只读部分(该标准不要求)时有效。如果这不会导致分段错误,那么这意味着您的编译器不会将所有
常量
变量放入只读部分。

这完全取决于实现。例如,裸金属臂uCs上的
const
数据存储在闪存中。你可以写信到那里,但根本没有效果

托管系统的行为将因操作系统、版本和硬件而异

如何覆盖常量内存块
如果要写入,请不要声明它
常量
。如果你尊重对编译器的承诺


如果这只是初学者的好奇心,那么除了实验之外别无选择。实验、调试并尝试解释结果。

当程序终止时,此“块”会发生什么情况?与编译器无关,也与编译器无关。这两个程序没有任何共同之处,第一个程序的运行不应以任何方式影响第二个程序。此内存由操作系统回收。对于覆盖常量的问题,一般来说这是个坏主意。它是
const
是有原因的,不应该更改。你能解释一下你想要实现什么吗?试图将声明的
const
存储到内存中会导致未定义的行为。你在这里问了几个不同的、不相关的问题。主要的一点是,一个进程中的物理内存完全独立于任何其他进程中的物理内存(假设您没有执行显式操作)。您可能想了解更多关于物理内存空间和逻辑内存空间之间的区别:。您想做什么?砍东西?修改其脚下的其他程序数据?还有什么吗?是的,马可,这正是我想说的,我想用一个分割错误杀死我的程序,我怎么能这样做呢。如果我试图写入只读内存,它只会引发一个错误,但我想在运行时用分段错误杀死整个程序。@Ayush-hmm好的,添加了一个示例。我试图理解它,但我没有正确理解它,尽管我知道指针、多级指针的概念,静态作用域和您在代码中使用过的任何内容,但为什么您要两次取消引用同一内存块,而您已经向该内存块写入了一次,那么需要再次写入它吗。@Ayush阅读我的注释,这只是另一种方式而已。这是一个例子,你不需要识别两次。我想我需要再玩几次,以便更好地理解,我会问你我是否会被困在某个地方。再次感谢。你没有错,你提出了一个重要的使用案例,即所讨论的“内存”可能根本不是虚拟内存。但是OP显然对“内存”有一些基本的误解,特别是对C/C++编程结构“const”的误解。在OP能够正确解释“实验”之前,最重要的可能是确保OP进行一些阅读,更好地理解更多的“基础知识”。依我拙见