c语言编程时常见错误(持续更新)

我使用的编译器:C-FREE 5.0
都是平时遇到的问题积累,所以没有什么章法规律,见谅见谅。
 
 
————————————————————————————————————————————————————————————————————————
 
1.
错误提示:“0x77c14995指令引用的0x7c92e920 内存 该内存不能为"written"”
 
错误原因:
一般为输入时编写错误,例如data前缺少‘&’
 
 
————————————————————————————————————————————————————————————————————————
 
2.
错误提示:
[Error] D:\My Documents\C-Free\Temp\未命名1.cpp: error: invalid types `double[100][double]' for array subscrip
 
错误原因:
int a[100];
double i;之后
使用了 a[i];    
[]里面应该用int型数 而不能用double型。
 
—————————————————————————————————————————————————————————————————— 
 
3.
错误提示:
ox004015488”指令引用的“0x6464694b”内存。该内存不能为“read”。
 
错误原因:
不允许直接将字符串赋予指针
比如char *p;
sancf("%s",p);错误

正确
char *p="dadasd"在声明时就赋值

char *p;
p="sdadsa"  声明后赋值


char a[10],*p=a;
scanf("%s",p);  正确,这是最常用方法
 
——————————————————————————————————————————————————————————————————
 
4.
错误提示:
[Error] D:\My Documents\C-Free\Temp\未命名3.cpp:8: error: ISO C++ forbids comparison between pointer and integer
 
错误原因:
while(gets(a)!=EOF)  本条语句错误
因为   gets的返回值是char*。
应该改为 while(gets(a)!=NULL);
 
————————————————————————————————————————————————————————————————————
 
5.
 
错误提示and错误原因:
如果发现已经 char a[2];
	  int n;
	  while(scanf("%d",&n)!=EOF)
	  for(i=0;i<n;i++)
		gets(a[i]);	时
输入两行字符。如 i love acm; i love you;
只能读入一行字符,
那么就是while语句错误;
请将while(scanf("%d",&n)!=EOF) 改为  while(scanf("%d ",&n)!=EOF)
空格是很重要滴~
 
——————————————————————————————————————————————————————————————————————
 
6.
错误提示:
  error: invalid operands of types `double' and `int' 
 
错误原因:
   例如错误的编程语句为: 	printf("%d\n",pow(A%1000,B%1000)%1000);
   其中 pow(A%1000,B%1000) ,返回的时double型,而 %d 输出的是int 型,所以出错。
  可以改为   :printf("%d\n",  (int)pow(A%1000,B%1000)  %1000  ) ;   
 
————————————————————————————————————————————————————————————————————
 
7.
错误提示:
 	[Warning] D:\My Documents\C-Free\Temp\未命名2.cpp:7:22: warning: multi-character character constant
 
错误原因: 
    例如错误的编程语句为:     printf("%s\n",'YES');
   其中 错在 YES 的两边的 ‘ ’ 上。  ‘ ’ 应该用在单个字符上 ,所以出错。
   可以改为   :printf("%s\n",”YES“);
 
 
————————————————————————————————————————————————————————————————————
 
8.
错误提示:
 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值