C语言必学之通用内存/指针相关错误

晓晓 113 0

搬瓦工官网(国内无法打开,需要梯子)https://bandwagonhost.com
搬瓦工官网中国镜像站https://bwh81.net(搬瓦工官方网站,放心访问)
搬瓦工官方中文网https://bwh86.net
搬瓦工官网所有方案以及库存监控页面https://bwh86.net/monitor
最新搬瓦工最大优惠力度优惠码(循环优惠6.58%):BWHNCXNVXV
搬瓦工新用户注册和图文购买教程点击查看

取消引用未知的内存位置:C程序员大多使用scanf()函数来获取输入,但是有时一个小错误可能会带来错误,甚至使整个程序崩溃。
scanf()的语法为scanf(“%d”,&a);。。有可能错过与和写入&A作为所以现在的scanf(“%d”,一); 正在取消引用到未知位置。
现在,该程序可能会异常终止,或者可能对应于有效位置(与当前程序无关,但与某些其他程序无关),并且可能被覆盖,这可能在以后导致未知效果。

读取未初始化的内存。在C语言中,初学者通常使用malloc()提供运行时内存,但是使用malloc()时,不会初始化内存块,因此可以访问。

一种解决方案是使用calloc()代替,它将块初始化为0。

缓冲区溢出:这是在C中发生的一个非常常见的错误,由于在C本身中存在错误的函数(即用于将字符串作为输入的gets()函数)而变得更加常见。它不检查提供的用于在程序中存储字符串的内存,因此,如果用户输入更大的字符串,则get()在字符串之后覆盖内存位置并导致get()并导致溢出。

该代码遭受缓冲区溢出的困扰,因为gets()不执行任何数组绑定测试。gets()继续阅读,直到看到换行符为止。为避免缓冲区溢出,应使用fgets()代替gets(),因为fgets()确保读取的字符数不能超过MAX_LIMIT个。

内存泄漏当未使用的堆内存未分配时,由于主内存最终被填满,而可用内存变少,就会出现这种情况。

如果不再使用内存,则应在malloc()之后使用free()。

由于优先级而导致的错误对运算符及其优先级的了解较少,可能会产生错误,尤其是对于像

*的优先级(取消引用/间接运算符不是乘法)和后缀++并不相同,但是前缀++和*具有相同的前缀,因此,首先p的值将增加并指向错误的内存区域,然后取消引用并将覆盖该位置或程序可能会终止。

发送不存在的变量的地址局部变量的返回地址会导致问题,

当函数fun()称为变量a时,将创建一个,但是一旦函数返回,它将被销毁。由于返回了函数,其地址p将指向堆栈区域中的存储区,如果调用了另一个函数,则指针p的更改可能会导致错误。

指针算术指针算术可能会令人困惑,让我们举一个例子,假设整数为4字节。

尽管由于整数为4个字节并且p在起始位置看起来是正确的,所以将其加4将导致p指向数组n中的下一个整数,但是指针算术根据其数据类型的大小工作,因此将1加到指针n整数,然后将sizeof(int)添加到其中,这同样适用于指向任何其他数据类型的指针。

将数组作为参数传递当我们将数组传递给函数时,它始终被视为函数中的指针。这就是为什么我们永远不要在数组参数上使用sizeof的原因。我们应该总是将size作为第二个参数

下面是更正的代码

学习更多,领取免费学习资料及教程,请查看下方图片:

搬瓦工机房方案整理

搬瓦工目前提供了4个方案,包括搬瓦工KVM方案搬瓦工CN2 GT方案搬瓦工CN2 GIA-E方案搬瓦工香港方案,每种方案有多种套餐配置,详细的配置和价格整理如下:
套餐名称 CPU 内存大小 硬盘容量 每月流量 带宽 价格/年 购买链接
搬瓦工CN2-E限量版(搬瓦工补货通知群(禁言,仅推送):903230558)
CN2 GIA LIMITED EDITION 1核 1 GB 10 GB 500 GB 1 Gbps $89.99 立即购买
搬瓦工CN2 GT方案
CN2 1核 1024 MB 20 GB 1000 GB 1 Gbps $49.99 立即购买
CN2 1核 2048 MB 40 GB 2000 GB 1 Gbps $99.99 立即购买
CN2 2核 4096 MB 80 GB 3000 GB 1 Gbps $199.99 立即购买
CN2 2核 8 GB 160 GB 5000 GB 1 Gbps $399.99 立即购买
CN2 3核 16 GB 320 GB 8000 GB 1 Gbps $799.99 立即购买
CN2大流量 3核 16 GB 320 GB 12000 GB 1 Gbps $899.99 立即购买
CN2大流量 3核 16 GB 320 GB 16000 GB 1 Gbps $1299.99 立即购买
搬瓦工CN2 GIA-E方案(可选搬瓦工DC9 CN2 GIA,搬瓦工DC6 CN2 GIA,搬瓦工日本大阪软银线路)
CN2 GIA ECOMMERCE 2核 1 GB 20 GB 1000 GB 2.5 Gbps $169.99 立即购买
CN2 GIA ECOMMERCE 3核 2 GB 40 GB 2000 GB 2.5 Gbps $299.99 立即购买
CN2 GIA ECOMMERCE 4核 4 GB 80 GB 3000 GB 2.5 Gbps $549.99 立即购买
CN2 GIA ECOMMERCE 6核 8 GB 160 GB 5000 GB 5 Gbps $879.99 立即购买
CN2 GIA ECOMMERCE 8核 16 GB 320 GB 8000 GB 5 Gbps $1599.99 立即购买
CN2 GIA ECOMMERCE 10核 32 GB 640 GB 10000 GB 10 Gbps $2759.99 立即购买
CN2 GIA ECOMMERCE 12核 64 GB 1280 GB 12000 GB 10 Gbps $5399.99 立即购买
搬瓦工香港方案
香港CN2 GIA 2核 2048 MB 40 GB 500 GB 1 Gbps $899.99 立即购买
香港CN2 GIA 4核 4096 MB 80 GB 1000 GB 1 Gbps $1559.99 立即购买
香港CN2 GIA 6核 8192 MB 160 GB 2000 GB 1 Gbps $2999.99 立即购买
香港CN2 GIA 6核 16384 MB 320 GB 4000 GB 1 Gbps $5899.99 立即购买
搬瓦工日本方案
日本CN2 GIA 2核 2048 MB 40 GB 500 GB 1.2 Gbps $899.99 立即购买
日本CN2 GIA 4核 4096 MB 80 GB 1000 GB 1.2 Gbps $1559.99 立即购买
日本CN2 GIA 6核 8192 MB 160 GB 2000 GB 1.2 Gbps $2999.99 立即购买
日本CN2 GIA 6核 16384 MB 320 GB 4000 GB 1.2 Gbps $5899.99 立即购买
搬瓦工KVM方案
KVM 2核 1024 MB 20 GB 1 TB 1 Gbps $49.99 立即购买
KVM 3核 2 GB 40 GB 2 TB 1 Gbps $99.99 立即购买
KVM 4核 4 GB 80 GB 3 TB 1 Gbps $199.99 立即购买
KVM 5核 8 GB 160 GB 4 TB 1 Gbps $399.99 立即购买
KVM 6核 16 GB 320 GB 5 TB 1 Gbps $799.99 立即购买
KVM 7核 24 GB 480GB 6 TB 1 Gbps $1,199.99 立即购买

标签: 国外云服务器 香港服务器 美国服务器 搬瓦工VPS

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~