很久没写C语言的代码,发现很多小细节,记下来备查。

0. C语言常规头文件

#include <stdlib.h>
#include <stdio.h>

1. 二维数组的开辟和释放-malloc()&free()

double ** a;   //a[m][n]
a = (double **) malloc (sizeof(double *) *m);
for (int i = 0; i < m; i ++)
a[i] = (double *) malloc (sizeof(double) *n);
for (int i = 0; i < m; i ++){
free(a[i]);
}
free(a);

2. 结构体指针

参考这篇文章:https://blog.csdn.net/qq_41936805/article/details/87542219

在读的时候用->还是.要特别注意。

struct{
int x, y;
}point; point *p = {1, 2};
int xx;
xx = p->x;
xx = (*p).x;

3. C语言生成随机数

一般情况:

a = rand();

限定范围:

设范围区间为(max,min),那么只需rand%(max-min+1)+min 即可

a = rand()% 50 + 1;
//生成(1,50)的随机整数

生成连续随机数

srand((unsigned)time(0);
a = rand();

在短时间内连续生成随机数

如果程序的运行时间很短,在毫秒内,此时time(0)不能作为有区分度的“种子”。此时要再加入一层随机:

srand((unsigned)time(0) + (unsigned)rand());
a = rand();

参考这篇笔记:https://www.cnblogs.com/dosu/p/12468150.html

4. 使用Dev-C++编译C语言的一些奇怪报错

[Error]: request for member ‘xxx’ in something not a structure or union.

由于结构体指针引用错误,如果它是地址,就在它后边用->,如果它不是地址,就在它后边就用.

与以上2. 结构体指针类似,不过这个问题主要发生在调用函数传入结构体指针参数(&point)时。

还可以参考这篇笔记:https://www.cnblogs.com/annie-fun/p/6369872.html

[Error] 'for' loop initial declarations are only allowed in C99 or C11 mode

在for循环里声明变量只允许在C99或C11模式, 需要在工具(Tools)/编译选项(complier option)/代码生成下的语言标准选择C99

参考这篇笔记:https://blog.csdn.net/qq_38316655/article/details/82830565

[C/C++]C语言-踩坑记录的更多相关文章

  1. google nmt 实验踩坑记录

       最近因为要做一个title压缩的任务,所以调研了一些text summary的方法.    text summary 一般分为抽取式和生成式两种.前者一般是从原始的文本中抽取出重要的word o ...

  2. unionId突然不能获取的踩坑记录

    昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://m ...

  3. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

  4. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  5. SpringBoot + Shiro + shiro.ini 的踩坑记录

    0.写在前面的话 好久没写博客了,诶,好多时候偷懒直接就抓网上的资料丢笔记里了,也就没有自己提炼,偷懒偷懒.然后最近参加了一个网络课程,要交作业的那种,为了能方便看下其他同学的作业,就写了个爬虫把作业 ...

  6. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  7. ABP框架踩坑记录

    ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User ...

  8. SpringBoot+SpringSecurity+Thymeleaf认证失败返回错误信息踩坑记录

    Spring boot +Spring Security + Thymeleaf认证失败返回错误信息踩坑记录 步入8102年,现在企业开发追求快速,Springboot以多种优秀特性引领潮流,在众多使 ...

  9. IDFA踩坑记录

    IDFA踩坑记录: 1.iOS10.0 以下,即使打开“限制广告跟踪”,依然可以读取idfa: 2.打开“限制广告跟踪”,然后再关闭“限制广告跟踪”,idfa会改变: 3.越狱机器安装开发证书打的包, ...

随机推荐

  1. Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)

    上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即Be ...

  2. 「BUAA OO Unit 4 HW16」第四单元总结与课程回顾

    「BUAA OO Unit 4 HW16」第四单元总结与课程回顾 目录 「BUAA OO Unit 4 HW16」第四单元总结与课程回顾 Part 0 第四单元作业架构设计 架构设计概要 AppRun ...

  3. Banner自定义图案

    Banner大全https://www.bootschool.net/ascii

  4. 【数据库Mysql 查询当前时间,年月日】

    1.本年份 SELECT YEAR(now()) SELECT DATE_FORMAT(NOW(), '%Y') 2.本月份(例如:1.01.January) SELECT MONTH(now()) ...

  5. Microsoft Office Visio Professional 之包图

    1 包的概念 1.1 包的定义 包(Package): 是UML用来组织模型元素的模型元素. 包中可以包含类.接口.构件.用例.结点.活动.状态.包等其他模型元素. 包是对软件模型进行分解.组织的有效 ...

  6. 任何快速查询IP归属地

    最近公司项目需要做一个IP归属地查询的功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的IP归属地API非常符合我的开发需求.   ...

  7. intellidea 快捷键-*01

    快捷键: 0.竖向选择文本: alt+shift+insert:https://www.cnblogs.com/JonaLin/p/11422110.html 如果想修改快捷键(setting-> ...

  8. 基础算法学习以及$STL$的使用

    1.优先队列 (1)大根堆(小顶堆) priority_queue<int,vector<int>,greater<int> >q; (2)小根堆(大顶堆) pri ...

  9. 迷宫类dp整合

    这是迷宫类dp我自己取的名字,通常比较简单,上货 简单模型 数字三角形 状态表示:f[i][j]表示起点第\(i\)行第\(j\)个数最短路径的长度 状态转移:\(f[i][j] = max(f[i ...

  10. .Net 5.0快速上手 Redis

    1. Redis的安装地址: https://files.cnblogs.com/files/lbjlbj/Redis3.7z   2.开启服务: 找到redis目录 打开cmd 输入redis-se ...