问题遇到的现象和发生背景
c语言面向对象编程,强制把ip1中p的地址赋值给a
用代码块功能插入代码,请勿粘贴截图
#include"Mobile.h"
#include<stdio.h>
class oss{
private:
char *p;
public:
//oss();
void mass();
};
void oss::mass(){
p=new (char);
printf("%p\n",p);
*p='a';
printf("%c\n",p);
};
int main()
{
oss ip;
oss ip1;
ip1.mass();
ip.mass();
char a;
a=(char)0x02250730;//强制给a,ip1的地址
printf("%c",*a);
printf("%p\n",a);
}
运行结果及报错内容
到了该打印a的值的时候就直接跳出运行了,但是可以输出a的地址
我的解答思路和尝试过的方法
我感觉是面向对象的封装性导致的
我想要达到的结果
为什么会跳出运行了?到底是不是封装性导致的?