c++ 强转问题,不报错,也不继续执行

各路仙人帮我看一下,我下面的代码不管是执行到哪一行都不抱任何错误。但是也无法继续往下执行了。
我是mac12.5.1,使用的是CLion IDE。是一个c++初学者。我在别的代码中看到这样的写法。但是我挪到我自己的代码中就无法运行了,也不报任何的错误。


using namespace std;
void test() {
  const uint64_t UO = 4294967296;
  cout<<(char*)UO<// 不管是执行到这里哪一行都不会抱任何错误,但是也不会往下继续执行了。
  cout<<"end"<void test1() {
  size_t HB = 2147483648;
  void* vv = (void*)HB;
  cout<<(char*)vv<// 不管是执行到这里哪一行都不会抱任何错误,但是也不会往下继续执行了。
  cout<<"end"<

我看了下,你代码,你就是想强转一个数,将其当成一个地址,然后打印出来,对吧?
例如,第一个U0,地址应该是 0x100000000
但,你知道当你强转为char*,它变成了什么??????????
是字符串。。。。。
明白了吧,这个内存不能访问,无法将字符串打印出来

作为一个指针来说,要输出的话,实际是输出指向的内容,但你这个指针指向的空间是不可操作的,所以实际程序已经崩溃了。

你应该永远只操作自己申请的内存,而不是随便写一个以前程序用过的内存地址就去访问
程序每次启动分配的内存都是随机的
你这是个典型的野指针

你的main函数呢? 没细看你想干嘛,函数内部期望的功能是啥自己试着调试

img

你怎么知道那个地址你就可以访问?