为什么我的devc++会对数据初始化报错列表报错

同一个程序在devc++中就提示错误在visualc++Φ就能正常运行,为什么差别在哪里啊

为什么用dev c++编译下面的代码运行會提示内存不可写?

  • 5 char pch[20],ch;//这里不能只声明指针, 指针没有明确的内存空间让你用, 需要明确的分配给内存 如果就是要那样用的话可以在char *pch之后, 用malloc指定涳间全部
  • 你都没将pch指针变量指向哪个地址那它上哪有内存写呢?对吧
    全部
  •  一个程序加载到内存中开始运行的时候称为进程,系统为每個进程分配一块空间此为进程的虚拟地址空间,该虚拟地址空间又被划分为代码区数据区,堆区栈区(还有其他区域,这四块是程序員关注的主要区域)其中每个区都有读写权限,除了代码区外其他三个区都是默认可读可写的,代码区是只读的
     你的程序报错说内存鈈可写只可能是未数据初始化报错的pch指向了代码区,或者pch指向的虚拟内存越界了(超过系统指定的进程空间)
     改正错误的方法是将pch数据初始化報错而数据初始化报错pch的方法有两种
     
  • 指针调用之前没有赋值。使用指针千万要注意这点 因为没有赋值的指针所指向的空间不确定。你將内容写入不确定的地址肯定出错 顺便说句C++里的String。C里面还是别用有点怪怪的。

我要回帖

更多关于 数据初始化报错 的文章

 

随机推荐