【411】COMP9024 Assignment1 问题汇总
1. 构建 Makefile 文件后运行错误,undefined reference to 'sqrt'
- 实际上是没有链接math数学库,所以要
$gcc test.c –lm //-lm就是链接到math库。 - 参考:C 语言 undefined reference to 'sqrt' 问题解决
- 参考:Why am I getting “undefined reference to sqrt” error even though I include math.h header? [duplicate]
2. Linux 下 C 语言程序的调试
- 将文件保存为hello.c后,在终端中使用敲入以下命令来使用GCC对程序进行编译。
gcc hello.c -o hello - 编译通过后,我们会在当前目录中看到hello文件,这就是编译后生成的可执行文件。
- 参考:Linux下编写C程序( GCC )(hello,world)
3. 创建 Makefile 文件
- 相当于将上面的编译命令写入到一个 Makefile 文件中,文件无扩展名,第一个字母可以大写,其他都是小写
- 通过 make 命令可以执行 Makefile 文件
- 参考:【410】Linux 系统 makefile 文件
- 参考:Makefile使用
4. 文件标准输入输出,stdin、stdout、stderr
- stdin:可以通过控制台、也可以通过文件
- stdout:可以直接输出到文件
- stderr:不会输出到文件
- 参考:https://wiki.cse.unsw.edu.au/cs9024cgi/19T2/Lec01IO
- 参考:格式化输出函数fprintf()中的stdout、stderr
//读取的数据存储在 str 中
//可以通过手动输入
//也可以通过命令行从文件输入
//a < input.txt
//将需要输入的信息存储到 input.txt 中即可
fgets(str, 50, stdin); //可以直接输出到控制台
//也可以通过命令行输出到文件中
//a < input.txt > output.txt
//只会将含有 stdout 的内容输出到文件中
//带有 stderr 的部分则是正常以错误的形式打印在控制台上
fprintf(stderr, "Error!");
fprintf(stdout, "Error!");
5. 不能使用数组(也就是方括号)
- 动态分配内存
- malloc:需要判断,最后需要释放
- realloc:需要判断,最后需要释放
- 参考:C语言内存分配函数malloc、calloc和realloc
- 参考:【C/C++】内存分配与释放(malloc、calloc、realloc、free)
// (char *):说明类型,最好带着
// sizeof(char) * 10:分配内存的大小需要通过计算,不同类型不一样
char *str = (char *)malloc(sizeof(char) * 10); //判断
if (str == NULL){
fprintf(stderr, "Memory allocation error.\n");
exit(EXIT_FAILURE);
} // 基本与上面类似
str = (char *)realloc(str, sizeof(char) * 20);
//判断
if (str == NULL){
fprintf(stderr, "Memory allocation error.\n");
exit(EXIT_FAILURE);
} // 释放
free(str);
str = NULL;
【411】COMP9024 Assignment1 问题汇总的更多相关文章
- LeetCode All in One 题目讲解汇总(持续更新中...)
终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 477 Total Hamming Distance ...
- http status 汇总
http status 汇总 常见HTTP状态码 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redir ...
- HTTP头学习汇总
在开发http请求的时候,对HTTP头部信息一知半解,各种百度谷歌汇总一下学习到的资料. http简介 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于 ...
- Git常用操作汇总(转)
如果一个文件被删除了,可以使用切换版本号进行恢复.恢复方法: 先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么 git checkout com ...
- Android开源项目库汇总
最近做了一个Android开源项目库汇总,里面集合了OpenDigg 上的优质的Android开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. 抽 ...
- Exchange Server 内部版本号和发行日期汇总
本章节对Exchange 各个主要发行版进行简单汇总,分别列出每个服务包 (SP) 的内部版本号.累积更新 (CU) 或特定 Exchange 版本的更新汇总 (RU).汇总内容适用于Exchange ...
- Android UI相关开源项目库汇总
最近做了一个Android UI相关开源项目库汇总,里面集合了OpenDigg 上的优质的Android开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个st ...
- LeetCode All in One题解汇总(持续更新中...)
突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对 ...
- java处理中国气象数据,提取汇总陕西地区24小时各观测点的数据(csv格式)
1.先贴一下气象数据的csv源格式,由于数据内容较多,就放一部分(china_sites_20150102.csv) date,hour,type,1001A,1002A,1003A,1004A,10 ...
随机推荐
- Java 学习(4):基本数据类型,变量类型
目录 --- 基本数据类型 --- 变量类型 基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用 ...
- github新建本地仓库,再同步远程仓库基本用法
github新建本地仓库,再同步远程仓库基本用法 1 mkdir gitRepo 2 cd gitRepo 3 git init #初始化本地仓库 4 git add xxx #添加要push到远 ...
- Java设计模式之(工厂模式)
工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...
- CPU问题定位与解决
CPU问题定位基本流程: 性能计数器诊断 主要用到的性能计数器 %Process Time 全实例 (主要用于查看当前服务器的CPU 情况) %Process Time sqlservr (主要用 ...
- vagrant的学习 之 ThinkPHP3.2
vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...
- POJ 1470 Closest Common Ancestors【LCA Tarjan】
题目链接: http://poj.org/problem?id=1470 题意: 给定若干有向边,构成有根数,给定若干查询,求每个查询的结点的LCA出现次数. 分析: 还是很裸的tarjan的LCA. ...
- CodeForces 598C Nearest vectors
这题对精度要求很高.用atan2吧... #include<iostream> #include<cstring> #include<cmath> #include ...
- pycharm查看代码注释的方法,代码编写日志及作者信息等
竟然在边栏有个右键的快捷键.annotate可以查看代码书写日期及作者 鼠标悬停可以看到更加详细的时间等信息 原理应该是利用git blame
- HUNT:一款可提升漏洞扫描能力的BurpSuite漏洞扫描插件
今天给大家介绍的是一款BurpSuite插件,这款插件名叫HUNT.它不仅可以识别指定漏洞类型的常见攻击参数,而且还可以在BurpSuite中组织测试方法. HUNT Scanner(hunt_sca ...
- python3 base64模块代码分析
#! /usr/bin/env python3 """Base16, Base32, Base64 (RFC 3548), Base85 and Ascii85 data ...