当前位置:  技术问答>linux和unix

动态申请的内存出错,进来看看

    来源: 互联网  发布时间:2015-03-25

    本文导语:  Linux C编程: 我用动态申请的内存 int *p = malloc();申请成功了。 可是后面用 p 存取数据时,比如 p[200] = 123; 有时会出现 segment fault. (尤其是申请比较大的内存时) 而改用 p[8000] 固定大小的数组,就没有问题。 ...

Linux C编程:
我用动态申请的内存 int *p = malloc();申请成功了。
可是后面用 p 存取数据时,比如 p[200] = 123; 有时会出现 segment fault.
(尤其是申请比较大的内存时)

而改用 p[8000] 固定大小的数组,就没有问题。
这是为什么?如何解决?

|
p[200] 是不是出界了。
int *p = malloc(); 
malloc到底申请多少内存?

|
同意楼上,
可能是内存越界。

|
应该是内存越界

|
impossibly
it is good way to use gdb tool to debug

|
int *p = malloc(1000);

 p[250] 就越界了。 通常都写成
 typeT *d = new(number* sizeof(typeT))

|
楼上的说得对。

|
很奇怪,c下有new函数吗?
我想可能是这样的,你在取p[200]之前,已经将p+ 了快到越界的地方了,
比如这样
unsigned char *p=malloc(1000);
p+=900;
p[200]就出错了。
你可以这样试试:
malloc后,马上察看p的值(指针的值)
p[200]前再察看p值,看看指向的地址是不是同一个地址,如果不是的话,那我想我的判断应该成立。

|
不是一定要用sizeof的,sizeof得出的也只不过是个整型,你写1000,也一个样。

|
to yaxii:
    不用sizeof安全么,自己写的test还可以,万一要移植……,而且万一什么时候没注意到类型,或者改了类型。搂主就是吃这个亏,你还要他这么干。“sizeof必须用!”要不然设计她干什么?

|
UNIX C有时候会因为其它地方程序越界,造成正常代码执行时CORE DUMP。
我曾经有个程序,只要断开SYBASE的连接后一段时间内CORE DUMP了,到现在还没搞明白是哪里写不对了。

    
 
 

您可能感兴趣的文章:

  • 链接问题,调用动态库中函数时出错
  • 交叉编译,动态链接库运行出错!请高人指点
  • 动态库调用静态库,编译时出错
  • 我想动态申请一块内存,然后在释放这块内存,应该怎么做,在线等!
  • 动态库中的变量(全局和自动变量)在什么地方存储,内存在什么位置分配?
  • 动态分配内存后,memset失败
  • driver的静态加载和动态加载占用内存问题
  • 如果内存里已经有动态库 是不是就启动更快?
  • 动态扩大共享内存问题
  • 如何为数组动态开辟内存???
  • Linux Kernel module下如何动态分配内存
  • 能不能给指针数组动态分配内存
  • 调用动态库时,说没有足够的内存?
  • linux下c++对长度不定的字符串要进行预先动态分配内存需要怎么做?
  • C语言 结构体动态数组内存释放问题
  • C语言创建链表错误之通过指针参数申请动态内存实例分析
  • linux下C++动态malloc申请内存出现问题,高人指点一下,在线
  • c++动态内存空间示例(自定义空间类型大小和空间长度)
  • 二维指针动态分配内存连续问题深入分析
  • 如果释放动态内存多于当初分配的数目,积少成多会造成程序崩溃吗?
  • 请教关于动态库与内存分配问题,。
  • 再问: 极具挑战性的问题:动态申请内存,再用来存储二维字符串数组
  • 极具挑战性的问题:动态申请内存,再用来存储二维字符串数组
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 动态库调用动态库
  • linux动态链接库里全局变量和静态变量会导致动态库不可重入吗?
  • linux能否成为动态域名解析客户端的动态域名解析服务器?
  • 关于动态菜单项,注意,不是动态菜单(一定给分)
  • Linux下,怎么确定动态库的绝对位置(动态库里面确定)?
  • 为什么动态生成的图片,JSP不能动态的获得
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 动态加载动态库问题--在线等
  • C#实现动态显示及动态移除图片方法
  • 静态库,动态库,静态链接和动态链接
  • 在linux下(c++),如何动态调用 动态库(.so)? 为什么我编译报错:undefined reference to "dlopen"
  • 程序发布的问题(动态连接库的问题)
  • JSP动态缓存 JimStoneCache
  • 怎么调试unix动态库.
  • 如何调用动态
  • 动态编译与静态编译驱动程式疑问?
  • 关于动态库的问题,谢谢!
  • linux动态路由问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3