C++ 清除内存地址上的数据

C++ 清除内存地址上的数据,c++,memory,C++,Memory,我环顾四周,找不到有关如何执行此操作的更多信息,但如何清除特定内存地址的内存 假设我的内存地址值为:0x12345 我需要写什么代码来清理空间中的任何东西 最好是C或C++大锤式回答你的问题(但我闻到一个XY问题) 大锤式回答你的问题(但我闻到一个XY问题) 我需要写什么代码来清理空间中的任何东西 视情况而定 要理解需要编写什么代码,首先需要知道(1)该地址中存储了什么类型的对象。然后,您必须决定(2)“清理”在该对象的上下文中的含义。一旦对这些问题有了答案,就可以知道需要编写什么代码 示例:内

我环顾四周,找不到有关如何执行此操作的更多信息,但如何清除特定内存地址的内存

假设我的内存地址值为:0x12345 我需要写什么代码来清理空间中的任何东西


最好是C或C++

大锤式回答你的问题(但我闻到一个XY问题)


大锤式回答你的问题(但我闻到一个XY问题)

我需要写什么代码来清理空间中的任何东西

视情况而定

要理解需要编写什么代码,首先需要知道(1)该地址中存储了什么类型的对象。然后,您必须决定(2)“清理”在该对象的上下文中的含义。一旦对这些问题有了答案,就可以知道需要编写什么代码

示例:内存地址
0x12345
包含类型为
int
的对象,我希望通过将该整数的值设置为0来“清理”该内存。然后你可以写:

auto ptr = (int*)0x12345;
*ptr = 0;
如果你不知道问题1和2的答案,那么你就不能“清理”


注:使用整数作为内存地址是非常可疑的。我们如何知道该内存地址中有一个
int
对象?通常使用addressof运算符获取对象的地址。在这种情况下,指针应该已经是适当的类型,因此需要强制转换

我需要写什么代码来清理空间中的任何东西

视情况而定

要理解需要编写什么代码,首先需要知道(1)该地址中存储了什么类型的对象。然后,您必须决定(2)“清理”在该对象的上下文中的含义。一旦对这些问题有了答案,就可以知道需要编写什么代码

示例:内存地址
0x12345
包含类型为
int
的对象,我希望通过将该整数的值设置为0来“清理”该内存。然后你可以写:

auto ptr = (int*)0x12345;
*ptr = 0;
如果你不知道问题1和2的答案,那么你就不能“清理”




注:使用整数作为内存地址是非常可疑的。我们如何知道该内存地址中有一个
int
对象?通常使用addressof运算符获取对象的地址。在这种情况下,指针应该已经是适当的类型,因此需要强制转换。

如果您还没有指向该地址或包含该地址的内存块的指针,您可能不想更改该内存。您从何处获得该内存地址,您的操作系统是否允许您访问该地址?还有,你试过做什么?(java C++)你的“清理”到底是什么意思?回答这个问题是不负责任的,如果你没有从你的实现中提供一个理由和保证,这是一个有效的事情。我有一个Java程序,我想手动清除内存,而不是GC,正计划把内存地址传递给C++程序(或类似程序)。并让它清理内存。如果您还没有指向该地址或包含该地址的内存块的指针,您可能不想更改该内存。您从何处获得该内存地址,您的操作系统是否允许您访问该地址?您尝试过做些什么?(以及“清理”的确切含义是什么回答这个问题是不负责任的,如果你没有从你的实现中提供一个理论和保证,这是一个有效的事情。我有一个java程序,我想手动清除内存,而不是GC,计划把内存地址传递给C++程序(或类似程序)。并让它清理内存。我确切地知道内存位置中的对象类型。是否将其设置为0应该如何操作?@SurajKumar如果对象类型为
int
,并且如果您打算将该值设置为0,则为“是”。@SurajKumar则其值不会更改。那么我如何删除数据?以便内存插槽可以删除数据是否用于某件事/其他人?@SurajKumar,这取决于该内存的位置。我确切知道内存位置中的对象类型。是否将其设置为0应该如何操作?@SurajKumar如果该对象的类型为
int
,如果您打算将该值设置为0,则为“是”。@SurajKumar,则其值将为“否”“我不会改变。那么我该如何删除数据?这样内存插槽就可以用于其他东西了?”SurajKumar说,这取决于内存的位置。