- 博客(19)
- 收藏
- 关注
原创 object of abstract class type “...“is not allowed
意思是抽象类定义对象是不允许的!如果出现这样的报错,检查下你使用的类是不是有纯虚函数(=0),如果没有,检查下基类的所有派生类是不是在复制粘贴的时候把基类的=0一并复制了
2022-02-18 21:22:00
1190
1
原创 双循环带哨兵位链表结构的通讯录,仅以此来阶段性总结我75天的c语言学习结果
今天过后开始c++的自学之路 !!!学到现在,给刷到这篇文章的铁子们一点建议。学习是痛苦并快乐过程。一,不要钻牛角尖,记着,学到后面思路就开阔了,问题就好解决了二,学习的过程可以穿插着学点数据结构,Linux操作系统,可以让我们暂时摆脱枯燥感,提高学习效率。三,要明确目标。人生只有一回,不甘心平凡的老去!这是我的驱动力main.c#define _CRT_SECURE_NO_WARNINGS#include "dlist.h"//枚举,在48行switch语句中case目..
2022-02-06 17:00:24
945
原创 malloc和calloc,realloc 核心区别
很多up主在教学时都没有阐述的很清楚,其实就几大件一,要知道为什么要使用这几个函数,为什么不在栈上开辟内存空间我认为核心的原因是使用方便,首先栈上创建的变量是不能够在函数间互相传递的,虽然可以通过extern,static等关键字修饰来达到目的,但是总归操作起来不是很方便,而且感觉比较乱!二,核心区别malloc不能初始化calloc开辟之初,初始化内存,相对安全系数较高realloc可以在原地址的后续物理空间不足以开辟新的空间的情况下,可以拷贝当前地址的内容并寻找一块新的空间开辟(
2022-02-06 10:40:23
579
原创 warning C6011: dereferencing NULL pointer <name>
去官网查下这个警告就知道解决办法了https://docs.microsoft.com/en-us/cpp/code-quality/c6011?view=msvc-170&viewFallbackFrom=vs-2019“To resolve the issue, validate the pointer before use.”:使用前验证下就ok了if(pointer==NULL)..........
2022-01-31 14:14:08
1037
原创 Program received signal SIGSEGV, Segmentation fault.
这个错误一般都是非法访问内存错误,检查下指针变量是不是没有赋NULL,或者没有明确指向(隐藏在结构体内部的指针也要检查下)全局变量会自动初始化,所以一般会发生定义在函数内指针变量会发生Segmentation fault.归根结底,出现这样的错误,检查指针就对了!...
2022-01-30 09:43:34
990
原创 初阶指针的陷阱(形象的解释指针型变量的传址陷进)
记住这张图就行了。再看看下面两段代码(这两段代码就很好的解释了,当在函数间传递指针时,指针变量间相互的赋值操作,只是换了指针(相当于换了个门牌号),对原存放的指针所指向的变量没有丝毫影响(里面住的人还是那个人),当局部指针变量在函数结束被销毁时,回到mai函数,一切都没改变(房间的门一直没有被开过,退房时,里面当然还是最初住进来的那个人),代码一:代码二:...
2022-01-01 21:56:39
298
原创 对time,srand,rand函数的一点看法(以及为什么两次rand函数调取的随机数会相同?)
首先看两段代码代码一:#include <stdio.h>#include <time.h>#include <stdlib.h>int main(){ int a = 0, b = 0, c = 0; srand((unsigned)time(NULL)); a = rand(); /*srand((unsigned)time(NULL));*/ b = rand(); c = rand(); printf("%d %d %d\n"
2021-12-20 17:30:38
308
原创 C语言程序设计(现代方法)第二版,第九章编程题三和第八章编程题九两种跳出循环的解题思路
思路一:#include <stdio.h>#include <time.h>#include <stdlib.h>#define N 10void generate_random(char a[N][N]);void print_array(char a[N][N]);int main(){ char walk[N][N] = { 0 }; generate_random(walk); print_array(walk); retur
2021-12-16 17:45:50
712
原创 为什么toupper函数没有引用头文件,程序也能只执行
#include <stdio.h>//#include <ctype.h>float compute_GPA(char grades[], int n){ float sum = 0; for (int i = 0;i < n;++i) { switch (toupper(grades[i])) { case 'A': sum += 4;break; case 'B': sum += 3;break; case 'C': sum += 2;b.
2021-12-13 20:12:29
599
原创 C语言程序设计现代方法第八章第九题编程思路
这道题的关键在于出口都被堵住了,怎么让程序终止!!!如果使用常规算法对于现在的知识储备,实在是有点烧脑。想了一个取巧的方案,就是利用概率,即如果程序循环500次还没有结束,默认已经走到死路,可以结束进程了(这个方法虽然有冒险性质,但是只有极小概率会导致程序提前退出)#include<stdio.h>#include<time.h>#include<stdlib.h>int main(void){ char ch[10][10] = { 0 }; i
2021-12-06 22:14:50
197
原创 float型变量能存储的最大正值和最小正值
今天写一写我对float变量的理解,我也是学习了网上的一些作者的看法,现在用最白的白话文记录下我对float变量存储格式怎么存储最大值和最小正值的理解。首先上面的单精度格式大家都知道,IEEE(Instituteof Electrical and Electronics Engineers (IEEE)指定的格式,也许是因为这样设计更加科学吧。float型变量存储格式被安排32个bits(1个bit就是一个由并联和串联的电路组合,可以在command指令下让其通电(0)还是断电(1))。其中
2021-11-25 22:17:07
3643
原创 C语言现代方法:第六章课后编程操作练习(6,7,9-12题解答思路)
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main()//第六题do语句写法{ int b, c, d; scanf("%d", &b); c = 0, d = 0; do{ c = c + 2; d = c * c; if (d >b) break; printf("%d\n", d); } while (d <= b); return 0;}int mai.
2021-11-24 21:17:49
208
原创 第六章循环中的一段代码笔记和想法(如有不对,欢迎指正)
今天比较忙,还要陪Honey去学车,只能晚上学习部分。越到后面,学习的进度明显慢了,一段代码要反复的推敲,消化,改动验证,确实挺烧脑的,但是也是不断的加深印象,拓展电路思维
2021-11-21 22:57:19
363
原创 编程练习(C语言_现代方法,第二版,第五章第7-10题解答)
get了个新知识点,return 0;可以配合if语句,可以多次短路程序,有意想不到的效果
2021-11-20 22:53:01
546
原创 初入C语言
突然顿悟,突然一个念头让自己很触动,生而为何?自从14年大学毕业,一直在职场摸爬滚打,内心从来没有此刻触动我生命科学专业毕业,毕业也后,到公立医院做技术实验员,到上市公司,外企做销售,销售管理,专业知识使用的也越来越少,应酬反而多了。就这样,在生活无忧的这种状态下,想学一门技术的念头越来越强烈由此,就决定学习c,再学c++,让自己的人生更加精彩第一篇博客,立个flag,2个月学完,熟练c语言...
2021-11-20 19:02:38
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人