C语言遇到的错误和解决方案~~~持续更新,记录成长的过程

1.error C2296: ‘&‘ : illegal, left operand has type ‘char [3]‘
scanf("%d" &x);
少了一个逗号
scanf("%d", &x);

2.char数组,没有定义数组长度的时候,运行会崩溃

解决方法:char型数组记得一定要定义一个长度

3.char数组定义长度后,但是赋值的时候并没有赋值那么长,控制台打印出现“烫烫烫..............”,
那是因为你没有赋值完,程序会将后面的默认赋值为CC h,打印出来就成了烫字
比如,你定义的数组是char a[10],最后你从控制台输入的字符数组为“lisi”,这个“lisi”的长度为5,所以后面的存储空间就默认为cccccch了,打印出来的就是烫字

4,如何定义变长的char数组
//(1).动态分配啊~每次都分配,每增加一个字符,就动态分配一个char字符空间给他
//char * p =(char*)malloc(sizeof(char)*1)等等
(2).没办法定义 ”变长数组“
char array[x];

x的值 在定义(分配空间时)必须指明 或者程序能得到x的值。

变长数组 基本实现思路是
申请一块内存 可存放x个元素 当元素的个数大于x后增加x/n个元素空间(可以使用内存复制)
数组对长度要求是静态的。全局数组在系统初始化时在数据段为其分配空间,如果数组大小不明确,数据段无法为其分配空间,因为还有别的数据需要在数据段分配空间;局部变量数组在创建函数调用栈时也要求数组指定大小,因为局部变量是在栈底分配空间的,如果数组大小不明,栈的后续增长就不知道从哪里开始了。

一般对于这种需求,都是临时根据需要申请动态内存来用。

5.fatal error C1010: unexpected end of file while looking for precompiled header directive
在vc6.0下面出现这个错误,一般是没有加头文件StdAfx.h
在cpp文件前面加上#include "stdafx.h",重新编译即可

6.D:\test2\test2.cpp(15) : error C2106: ‘=‘ : left operand must be l-value
;
error C2106: ‘=‘ : left operand must be l-value
是说: ‘=‘左边必须是变量,不能是常量或者表达式
比如,下面的几个例子,都是同样的错误:
5=3;
(i+j)=3;

7.strlen(ch),这里的ch为char *型
要字符数组的长度,则sizeof(ch)

8.头文件中有.h和没有.h的区别
有.h是c语言的头文件
没有.h是C++的头文件
以<string>和<string.h>为例:
在c++中,这样用:
#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件

using  std::string;

using  std::wstring;

using namespace std;

在C语言中是
#include <string.h>

时间: 2024-10-04 18:22:10

C语言遇到的错误和解决方案~~~持续更新,记录成长的过程的相关文章

Unreal4 C++ 错误指引(持续更新)

相信同学们现在开始用C++的开发方式去完成某些功能或是去尝试了解UnrealEngine4内部运用流程,这个过程自然少不了与Epic自己包装的C++打交道. 当然与UnrealEngine4的C++必须要遵守UE4工程的规则,比如整个工程配置基本是使用[NMaker]配置完成.在代码编译前需要先编译[UnrealHeaderTool]工具,再由[UnrealHeaderTool]去编译我们自己的工程.当然整个编译的过程与UnrealEngine3一样使用命令行编译(为了解决扩平台和脱离IDE).

Zabbix日志错误总结(持续更新)

zabbix_agentd.log  错误一  no active checks on server [*.*.*.*:10051]: host [*] not found 出现该错误的原因是一般是zabbix_agentd.conf里面的Hostname和前端zabbix web(Monitoring->Configuration->Hosts 页面的Name)里面的配置不一样所造成的 解决 在zabbix web页面Monitoring->Configuration->Host

Linux Bash严重漏洞修复紧急通知(官方最新解决方案持续更新中)

日前Linux官方内置Bash中新发现一个非常严重安全漏洞(漏洞参考https://access.redhat.com/security/cve/CVE-2014-6271  ),黑客可以利用该Bash漏洞完全控制目标系统并发起攻击,为了避免您Linux服务器受影响,建议您尽快完成漏洞修补,修复方法如下,请了解!  特别提醒:Linux 官方已经给出最新解决方案,已经解决被绕过的bug,建议您尽快重新完成漏洞修补.openSUSE 镜像暂时还没有给出.   [已确认被成功利用的软件及系统]  所

IE兼容BUG汇总及解决方案(持续更新)

本篇为总结开发过程当中遇到的各种IE兼容性的小问题,比较复杂的会单开一篇文章来讲解. 另:我手头目前只有原生IE8,原生IE9,原生IE11,以及IE11模拟的IE5,7,8,9,10.因IE6太过古老而不再进行测试. 无法使用jquery的outerHTML的方式创建含有href属性的a标签(IE5-8) 问题复现: typeof $("<a href='xxx'>").get(0);//IE7-8:"undefined" typeof $("

app store 被拒原因及解决方案(持续更新中)

做iOS开发细数下来也有4年多了,想必比较头痛的app store被拒问题一直困扰大家吧.我把自己遇到的以及朋友和他人的被拒原因和解决方案作个总结. 1.iTunes备份问题,apple不允许文件无限制的占用iTunes备份空间,解决方法,一般给根文件夹加属性: + (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { NSError *error = nil; BOOL success = [URL setResourceValue:@Y

Hadoop的mapreduce开发过程,常见错误集锦(持续更新)

1.Text包导错了. 将import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text; 改为import org.apache.hadoop.io.Text; . 2.本地编译环境和生产环境中的java版本不匹配.有可能是jdk不匹配,也可能是jre不匹配.都匹配就不会有这个问题 3.map与reduce都要是分别重载Mapper和Reducer类.不能是自己定义的方法

C语言中的那些库函数(持续更新中)

1.[exit()] exit是在调用处强行退出程序,运行一次程序就结束.exit(0)表示正常退出.exit(1)表示异常退出,这个1是返回给操作系统的.无论是写在main函数中,还是在其他函数中,都是程序退出.一般都是认为0是正常退出.其他数字是异常退出.所在的头文件是stdlib.h.  返回值的意义其实同main函数中的return一样,零表示正常,非零表示异常. 2.[memset] 函数的声明为:memset(void *, int, size_t n).功能是将void *所指向的

C语言中的常用函数_持续更新

isspace函数: 背景:之前遇到scanf()输入时会把换行符留在输入队列的情况,如果下次要用到getchar(),但是会导致其先返回这个我们不需要的换行符:从而导致不希望出现的行为: 说明:检查参数c是否为空格字符,也就是判断是否为空格(' ').水平定位字符 ('\t').归位键('\r').换行('\n').垂直定位字符('\v')或翻页('\f')的情况.若参数c为空格字符,则返回TRUE,否则返回NULL(0). 注:位于ctype.h中,是宏定义,非真正函数: 例子: 1 int

Kubernetes 错误汇总(持续更新)

问题一.unable to fetch the kubeadm-config ConfigMap: failed to get config map: Unauthorized [[email protected] ~]# kubeadm join 10.0.0.31:6443 --token 1euadv.48cjve19biy33b9m --discovery-token-ca-cert-hash sha256:295acb22b65296410968d040cfbb326642d2e3b1