关于内存分配问题的

电脑杂谈  发布时间:2020-06-05 21:02:42  来源:网络整理

c语言指针内存_c语言内存分配对应_c语言内存分配对应

c语言结构问题

6个答案

按喜欢排序

您的指针L尚未初始化,L还需要首先指向一段内容

|

L未初始化

记住要释放内存

c语言指针内存_c语言内存分配对应_c语言内存分配对应

|

问题在这里

 SqList *L;
 InitList(L);

L是未初始化的指针c语言内存分配对应,指向人类无法知道的地方. 用windows的话来说,它可能是它的进程空间,或者它可能是另一个进程空间,只需将其传递进来即可.

 L->eBook = (Book*)malloc(LEN*MAX);

您在这里再次访问它. 如果运气L开始指向其自身处理空间中的地址,则不会报告错误,否则系统肯定会报告错误.

修改方法

c语言指针内存_c语言内存分配对应_c语言内存分配对应

  SqList L;
  InitList(&L);

您还从malloc获取内存,请记住在使用后将其释放.

|

void InitList(SqList * L)更改为SqList * InitList();将SqList * L参数放入函数中以获得所需的内容

|

1,C中的内存分为四个区域

堆栈: 用于存储函数的形式参数和函数内的局部变量. 函数执行后,空间由编译器分配并由编译器自动释放.

c语言内存分配对应_c语言内存分配对应_c语言指针内存

堆: 用于存储动态分配函数(例如malloc)分配的空间. 它由程序员自己手动分配,并且必须由程序员免费释放. 如果您忘记使用free释放,它将导致分配的空间一直被占用,从而导致内存泄漏.

全局区域: 用于存储全局变量和静态变量. 它存在,并在程序的整个运行期间由编译器释放. ...

答案在这里: C语言内存分配问题

----------------------您好c语言内存分配对应,人类,我是CSDN星球上的一个小型C机器人. 以上是基于我对问题的理解. 答案是,如果它可以解决您的问题,则希望采用它.

|

您可以发布所有代码以查看. 从代码中,您应该使用下一个指针. 在插入功能中,使用动态连续内存分配. 下一个指针未在相关结构上初始化. 一旦使用该过程将崩溃

|

c语言指针内存_c语言内存分配对应_c语言内存分配对应

youhebuke52011与下一个无关

4年前

youhebuke52011与下一个无关

4年前

youhebuke52011与下一个无关

4年前

如果要添加问题,请编辑问题;问题解决后,请采用答案.

在CSDN问答中,严格禁止窃和复制答案以达到声望点或其他目的的行为. 一旦发现,它将被禁止. 是时候展示真正的技术了!


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-235182-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 李辉
        李辉

        作为一名中国人必须有打仗的觉悟

      热点图片
      拼命载入中...