c语言,操作电脑内存问题 希望指定内存的地址,存进去数据,然后再从这个内存地址读出来数据。。。

c语言,操作电脑内存问题希望指定内存的地址,存进去数据,然后再从这个内存地址读出来数据。。。求高手指点,速度哦,先到先得... c语言,操作电脑内存问题

希望指定内存的地址,存进去数据,然后再从这个内存地址读出来数据。。。

求高手指点,速度哦,先到先得
展开
 我来答
logcor
推荐于2016-10-11 · 超过12用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:13.1万
展开全部
c的malloc无法指定地址分配内存的。用c++的new操作符可以指定地址分配:
class A
{
int a;
int b;
public: A(int x=123,int y=321):a(x),b(y)
{
cout << "In A()" << endl;
}
public: ~A()
{
cout << "In ~A()" << endl;
}
};

int main()
{
unsigned char mem[sizeof(A)];
int *p=(int*)mem;
cout << *p << endl;
cout << *(p+1) << endl;
new(mem)A();
cout << *p << endl;
cout << *(p+1) << endl;
return 0;
}
这上边的new操作符就是指定地址分配内存。

C语言如果不是指定内存的话可以这样:
int *p = (int*)malloc(sizeof(int));//分配内存
*p = 38;//往内存存值
printf("value:%d\n", *p);//打印出指针p指向的整形值
free(p);//释放内存
更多追问追答
追问
就算不能指定,可以用一个小程序往内存里存数,在另一个小程序中读那个数吗?
追答
现代操作系统采用虚拟进程空间来分割不同进程的内存地址。因此不同程序看到相同的地址其实在物理内存中的映射是完全不一样的。因此不可以在一个小程序里存数,在另一个内存里读数。
另外,操作系统一般都提供了共享内存,管道或其他类似手段,可以用来在不同进程里通信,在这种情况下不同程序可以相互读写。不过这属于操作系统的系统调用范畴,与c语言学习理解不一样。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式