您的位置:首页 > 编程语言 > C语言/C++

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

2013-02-27 14:06 483 查看
我使用的编译器: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.

错误提示:

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: