先说结论

  1. 结构体指针需要初始化
  2. 结构体指针的成员指针同样需要初始化
  3. 结构体变量定义的时候就已经分配了内存空间,而上面两个确没有

struct test{
int i;
struct buf *p;
} t; //定义结构体t

struct buf{
char data[512];
struct buf *prev;
struct buf *next;
} ;

t定义后里面的成员变量在GCC下已经初始化为0了,但p并没有malloc分配空间,因此对t.p->prev的任何赋值操作都会出错,解决方法:

1、把  struct buf *p 改为 struct buf p;由于定义后已经分配空间,可以直接使用p.prev = &p;

2、malloc分配空间  t.p = (struct buf*) malloc(sizeof(struct buf));p.prev =  之后就可以赋值了****

c语言结构体指针必须初始化的更多相关文章

  1. c语言结构体指针初始化

    今天来讨论一下C中的内存管理. 记得上周在饭桌上和同事讨论C语言的崛起时,讲到了内存管理方面 我说所有指针使用前都必须初始化,结构体中的成员指针也是一样 有人反驳说,不是吧,以前做二叉树算法时,他的左 ...

  2. C语言结构体指针初始化(转)

    reference: https://www.cnblogs.com/losesea/archive/2012/11/15/2772526.html 今天来讨论一下C中的内存管理. 记得上周在饭桌上和 ...

  3. C/C++语言结构体指针的使用

    C/C++语言结构体指针的使用 主要内容 结构体的使用 - 定义,赋值,结构体指针 结构体作为函数参数的使用 指针的使用 代码内容重点 结构体的使用 - 定义,赋值,结构体指针 结构体作为函数参数的使 ...

  4. C语言结构体指针(指向结构体的指针)详解

    C语言结构体指针详解 一.前言 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组. *a).b 等价于 a->b. "."一 ...

  5. 结构体指针,C语言结构体指针详解

    结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针. 指向结构体变量的指针 前面我们通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针. 前面讲过,& ...

  6. [编程] C语言结构体指针作为函数参数

    结构体指针作为函数参数:结构体变量名代表的是整个集合本身,作为函数参数时传递的整个集合,也就是所有成员,而不是像数组一样被编译器转换成一个指针.如果结构体成员较多,尤其是成员为数组时,传送的时间和空间 ...

  7. C语言结构体指针

    #include <stdio.h> int main() { /*************************************************** *结构体指针:指向 ...

  8. C语言结构体指针与结构体变量作形参的区别

    区别 结构体变量 结构体变量作为形参,传递的是结构体变量本身,是一种值传递 形参结构体变量成员值的改变不影响对应的实参构体变量成员值的改变 结构体指针 结构体指针作为函数参数,传递的是指向结构体变量的 ...

  9. [GO]结构体指针变量初始化

    package main import "fmt" func main() { type student struct { id int name string sex byte ...

随机推荐

  1. mac生成ssh keys

    打开终端 输入ssh-keygen,然后系统提示输入文件保存位置等信息,连续敲三次回车即可,生成的SSH key文件保存在中-/.ssh/id_rsa.pub

  2. 给go添加各种package

    go version 1.1.2 For example you need to install the webscoket pakeage try           go get code.goo ...

  3. php笔记(七)PHP类于对象之多态

    <?php interface ICanEat{ public function eat($food);} class Human implements ICaneat{ public func ...

  4. 使用$_SERVER['HTTP_HOST']时需注意的

    在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址. $_SERVER['HTTP_HOST']在客户的环境里,取得的值总是程序所在的服务器在其局域 ...

  5. GD库 图片缩略图 图片水印

    /** * GD库 图片缩略图 *//*$image = imagecreatefromjpeg("1.jpg");var_dump($image);exit;$width = i ...

  6. 在cmd中连接数据库

    1.进入mysql安装路径的 mysql/bin 目录(即mysqld.exe所在目录) 2.在cmd中输入mysql进入mysql操作环境(mysql -u root -p )链接mysql并输入密 ...

  7. css3技巧属性之text-overflow

    text-overflow:clip | ellipsis 默认值:clip 取值: clip: 当对象内文本溢出时不显示省略标记(...),而是将溢出的部分裁切掉. ellipsis: 当对象内文本 ...

  8. 外部系统集成BIEE

    1.外部系统集成BIEE 隐藏工具栏和仪表盘右上角的菜单 2.BIEE 11g 嵌入Iframe InIFrameRenderingMode有三种取值,分别是prohibit.sameDomainOn ...

  9. 转:Web网站性能测试分析及调优实例

    1.背景 前段时间,性能测试团队经历了一个规模较大的门户网站的性能优化工作,该网站的开发和合作涉及多个组织和部门,而且网站的重要性不言而喻,同时上线时间非常紧迫,关注度也很高,所以对于整个团队的压力也 ...

  10. ios 软键盘顶起这个页面

    html { overflow: hidden; } ;;;; } ;;; } ;; left: 200px; overflow: auto;} 行内的滚动条.