• linux c 出错集


    2018.7.8

    1.声明结构体时,结构体内部不能赋值。比如

    struct student{

      char id=0;

      char score=0;

    };

    这样大错特错!

    2.字符数组 char a[10] 。只有在声明的时候可以这样: char a[10]="xxxxx";

    若 不是声明时,a="xxx";这样大错特错。a是一个常量指针,不能改变值。

    此时可以用strcpy()或循环赋值。

    3. 记住  中括号  []  的降维作用。。。。。额。。无语。

    谨记教训。

    4.在创建链表结点的时候犯了一个低级错误:

    错误代码是这样的:

    void creat(p_list p)

    {

      p=(p_list)malloc(sizeof(list));

      p->next = p;

      p->pre = p;

      p->data = 0;

    }

    这里的错误是这样的:忽略了变量范围的作用域。

    这里的p_list p 很具有迷惑性,声明一个指向p_list型链表结点的指针。把p传进子函数,切记,这是传进子函数的是指针变量,传进子函数后,主函数的变量就已经失去作用了只不过是把主函数中P的值给了子函数中的p但是这时的p是子函数中的变量,其作用域只限于子函数区域。要更改错误有以下两种方法:

    1,调用函数时传递p指针的地址。

    2,将函数改为如下形式:

    p_list creat()

    {

      p_list p;

      p=(p_list)malloc(sizeof(list));

      p->next=p;p->pre = p;p->data=0;

      return p;

    }

  • 相关阅读:
    协议与接口相关
    jmeter 使用(1)
    jmeter 压力测试
    shell脚本的规则
    charles的原理及使用
    Linux环境部署和项目构建
    面向对象
    python 基础练习题
    jmeter 使用(2)
    Ext.apply
  • 原文地址:https://www.cnblogs.com/jiaan/p/9279282.html
Copyright © 2020-2023  润新知