最近在运用指针时出现段错(核心已转储)的报错现象,经过学习发现了其可能原因和相对应的解决方案:
为什么会出现段错误呢?
段错误,是指你的程序尝试访问不允许访问的内存地址的情况。这可能是由于:
试图解引用一个无所指向的空指针
我门这里写一个简单的例子:
如图我们在Ubuntu中定义一个指针但不给他开辟一段内存空间;
我们编译运行并输入 tigers ,结果如下:
很显然,由于我们试图解引用一个无所指向的空指针,程序自然会出现段错误(核心已转储)的问题;
那我们来给他分配一个内存空间试试看:
我们用new给animal开辟了一段空间,然后再次编译并运行:
可以看到,此时段错误(核心已转储) 的问题已经不存在了;
总的来说,当你的编译器出现段错误(核心已转储)时,大概率的就是指针的不正当使用造成的;
欢迎各位兄弟姐妹们来一起讨论出其它现象和解决方案