Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;指针将内存读取为0 我想有两个独立的C++程序,其中第一个程序初始化一个整数并改变其值,第二个程序通过给定的指针从第一个程序读取整数的值。第一个程序如下所示: #include <iostream> int main() { int var = 5; int* varPtr = &var; std::cout << "var = " << var <<\ " varPtr = " << varPtr <<\ " (long long)varPtr = " << (long long)varPtr <<\ " *varPtr = " << *varPtr << std::endl; for(int i = 0 ; i < 10 ; i ++) { std::cout << "enter a number: "; std::cin >> *varPtr; std::cout << "var = " << var <<\ " varPtr = " << varPtr <<\ " *varPtr = " << *varPtr << std::endl; } } #include <iostream> int main() { std::cout << "enter (long long)varPtr (from the second program): "; int* varPtr = nullptr; long long llPtr = 0; std::cin >> llPtr; varPtr = (int*)llPtr; std::cout << "varPtr = " << varPtr <<\ "\n*varPtr = " << *varPtr <<\ " (long long)varPtr = " << (long long)varPtr << std::endl; while(true) { std::cout << " varPtr = " << varPtr <<\ " *varPtr = " << *varPtr << std::endl; } } #包括 int main(){ int-var=5; int*varPtr=&var; std::cout_C++_Pointers - Fatal编程技术网

C++;指针将内存读取为0 我想有两个独立的C++程序,其中第一个程序初始化一个整数并改变其值,第二个程序通过给定的指针从第一个程序读取整数的值。第一个程序如下所示: #include <iostream> int main() { int var = 5; int* varPtr = &var; std::cout << "var = " << var <<\ " varPtr = " << varPtr <<\ " (long long)varPtr = " << (long long)varPtr <<\ " *varPtr = " << *varPtr << std::endl; for(int i = 0 ; i < 10 ; i ++) { std::cout << "enter a number: "; std::cin >> *varPtr; std::cout << "var = " << var <<\ " varPtr = " << varPtr <<\ " *varPtr = " << *varPtr << std::endl; } } #include <iostream> int main() { std::cout << "enter (long long)varPtr (from the second program): "; int* varPtr = nullptr; long long llPtr = 0; std::cin >> llPtr; varPtr = (int*)llPtr; std::cout << "varPtr = " << varPtr <<\ "\n*varPtr = " << *varPtr <<\ " (long long)varPtr = " << (long long)varPtr << std::endl; while(true) { std::cout << " varPtr = " << varPtr <<\ " *varPtr = " << *varPtr << std::endl; } } #包括 int main(){ int-var=5; int*varPtr=&var; std::cout

C++;指针将内存读取为0 我想有两个独立的C++程序,其中第一个程序初始化一个整数并改变其值,第二个程序通过给定的指针从第一个程序读取整数的值。第一个程序如下所示: #include <iostream> int main() { int var = 5; int* varPtr = &var; std::cout << "var = " << var <<\ " varPtr = " << varPtr <<\ " (long long)varPtr = " << (long long)varPtr <<\ " *varPtr = " << *varPtr << std::endl; for(int i = 0 ; i < 10 ; i ++) { std::cout << "enter a number: "; std::cin >> *varPtr; std::cout << "var = " << var <<\ " varPtr = " << varPtr <<\ " *varPtr = " << *varPtr << std::endl; } } #include <iostream> int main() { std::cout << "enter (long long)varPtr (from the second program): "; int* varPtr = nullptr; long long llPtr = 0; std::cin >> llPtr; varPtr = (int*)llPtr; std::cout << "varPtr = " << varPtr <<\ "\n*varPtr = " << *varPtr <<\ " (long long)varPtr = " << (long long)varPtr << std::endl; while(true) { std::cout << " varPtr = " << varPtr <<\ " *varPtr = " << *varPtr << std::endl; } } #包括 int main(){ int-var=5; int*varPtr=&var; std::cout,c++,pointers,C++,Pointers,C++语言没有进程的概念。就语言而言,当前运行的程序是唯一存在的程序。程序之间没有通信,除非通过标准输入和输出或读写文件 操作系统(支持)同时支持多个程序的运行,通过虚拟内存实现C++程序感知的隔离,一个程序的内存地址对另一个程序毫无意义。 多处理操作系统一般也提供一种或多种进程通信的方式。C++标准库不具备这种能力。因此,您需要查阅系统的文档来实现这种通信。第一步是找出您正在瞄准的系统。 如果读卡器有足够的权限,系统甚至可能是直接读取另一个进程内存的API,我认为这正是您要做的。但是,查找相关

C++语言没有进程的概念。就语言而言,当前运行的程序是唯一存在的程序。程序之间没有通信,除非通过标准输入和输出或读写文件

操作系统(支持)同时支持多个程序的运行,通过虚拟内存实现C++程序感知的隔离,一个程序的内存地址对另一个程序毫无意义。

多处理操作系统一般也提供一种或多种进程通信的方式。C++标准库不具备这种能力。因此,您需要查阅系统的文档来实现这种通信。第一步是找出您正在瞄准的系统。


如果读卡器有足够的权限,系统甚至可能是直接读取另一个进程内存的API,我认为这正是您要做的。但是,查找相关地址通常很困难,因为操作系统通常会实现地址空间布局随机化,以防止安全漏洞。大多数进程间C++语言没有进程的概念。就语言而言,当前运行的程序是唯一存在的程序。程序之间没有通信,除非通过标准输入和输出或读写文件

操作系统(支持)同时支持多个程序的运行,通过虚拟内存实现C++程序感知的隔离,一个程序的内存地址对另一个程序毫无意义。

多处理操作系统一般也提供一种或多种进程通信的方式。C++标准库不具备这种能力。因此,您需要查阅系统的文档来实现这种通信。第一步是找出您正在瞄准的系统。


如果读卡器有足够的权限,系统甚至可能是直接读取另一个进程内存的API,我认为这正是您要做的。但是,查找相关地址通常很困难,因为操作系统通常会实现地址空间布局随机化,以防止安全漏洞。大多数进程间s的通信是合作的。

访问另一个程序的内存比这要困难得多。首先,请通读。上述代码中不需要行连续反斜杠。(也没有什么坏处。除了在需要的代码区域外,通常会省略。)你可能想使用Boost的工具。我假设这两个程序是为了协同共享内存而编写的。程序要求借出内存,而它们得到的内存实际上是它们的,至少在不做更多困难的事情的情况下是这样的。很遗憾,这永远不会起作用。好吧,谢谢,所有这些都是有帮助的,但我不明白为什么我要这么做能够输入第二个程序中寻址的其他内存,但仍然在该内存中读取数据。@Eljay访问另一个程序的内存比这要困难得多。对于初学者,请继续阅读。上述代码中不需要行继续反斜杠。(也没什么坏处。只是除了在需要的代码区域外,通常省略。)你可能想使用Boost的工具。我假设这两个程序是为了协同共享内存而编写的。程序要求借出内存,而它们得到的内存实际上是它们的,至少在不做更多困难的事情的情况下是这样的。很遗憾,这永远不会起作用。好吧,谢谢,所有这些都是有帮助的,但我不明白为什么我要这么做能够输入第二个程序中寻址的其他内存,但仍能读取该内存中的数据。@eljay