Code :: Blocks错误.exe已停止工作
问题描述:
每当我尝试运行我的代码时,弹出窗口即将告知program.exe已停止工作。Code :: Blocks错误.exe已停止工作
#include<stdio.h>
#include<stdlib.h>
int main()
{
char D[10];
for(int i; D[i]!='\0';i++)
scanf("%c",D);
for(int i; D[i]!='\0';i++)
printf("%c",D);
return 0;
}
这里是多了一个,这是造成相同的错误
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *ptr= (int*)1000;
printf("%d %d ",ptr,*ptr);
ptr=ptr+1;
printf("New Value of ptr : %u",ptr);
printf("%d %d ",ptr,*ptr);
return 0;
}
答
代码:: Blocks的错误的.exe已停止工作与代码:: Blocks的一个非常通用的错误代码。它可能出于许多不同的原因,所以这两种情况都有不同的错误。
在第一个,D
值未在for
环在使用之前设置。当您测试D[i] != '\0'
时,行为可能不可预测。
然后,您没有初始化您的for循环中的i
。你的意思是
for(i = 0; D[i] != '\0'; i++)
?
最后的printf
不正确,您不能打印char
数组。你的意思是
printf("%c", D[i]);
?
我不知道关于第二个,但我敢肯定,第一行int *ptr= (int*)1000;
不正确。 尝试
int a = 1000;
int *ptr = &a;
答
在你的第一个程序中,你还没有初始化我。你应该把int i = 0放在for循环中。
此外,您的程序是一个无限循环。因为你每次只在D [0]扫描。你确定你不想使用do ... while循环吗? 你也不需要第二个循环。你可能想看看如何在c中扫描和打印一个字符串。
您可能想写:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char D[10];
scanf(" %[^\n]s", D);
printf("%s\n", D);
return 0;
}
在第二个程序中使用:
int a = 1000;
int *p = &a;
这确保了整都有它的内存地址保留。
你可以发布代码吗?如果我们无法看到代码,那么我们有点难以确定问题所在。编辑问题以包含它。 – GrandMasterFlush
https://drive.google.com/file/d/0B-QBwnCjr6U9ZzR4ODc2NzdlYW8/view?usp=sharing –
@GrandMasterFlush下面是另一个代码中同样错误的屏幕截图。 https://drive.google.com/file/d/0B-QBwnCjr6U9Z3BwLWpaU1JGZEk/view?usp=sharing –