5个回答
展开全部
虽然我没有看到你的源程序。但是根据我的编程、调试经验,你可以从以下几个方面进行考虑:
(1)、根据你说的“这样写法就不行了?”,根据我对你的判断,你先仔细检查一下你的程序语法上的错误?一般来说,C语言编译器本身出错的概率是极低的,不会把一个正确的源程序误认为是有错误的;
(2)、如果第(1)个问题确实不存在,那么你再仔细检查程序上的隐含错误?例如:虽然定义了某个变量,但是未进行初始化就使用、或者是虽然定义了一个指针变量,但是未成功分配内存,就引用了指针变量,导致程序崩溃?这个问题尤其要引起注意!!!
举例来说:
...... /* 前面的若干行代码省略 */
char * my_memory ;
my_memory = (char *)malloc( 1000 ) ; /* 假设动态分配 1000 个字节的内存 */
if( my_memory == NULL ) /* 若内存分配失败,则返回一个空指针 NULL */
{
printf("Memory allocation failured !\n") ; /* 打印出错信息 */
exit(1) ; /* 退出系统 */
}
else /* 内存分配成功,继续往下执行 */
strcpy(my_memory, "This is a test string ....." ) ;
...... /* 后面的若干行代码也省略 */
如果缺少了这个 if 判断语句,用于判断内存分配是否成功,程序就继续往下执行?那么即使内存分配失败了,后面的程序代码还在使用 my_memory 指针变量,此时程序肯定就会崩溃了。
尤其是 C 语言,其特点就是:功能极其强大,写法极其灵活、自由,所以这也是 C 语言不容易熟练掌握的地方。必须要通过编写相当数量的代码,积累丰富的编程经验才行。
(1)、根据你说的“这样写法就不行了?”,根据我对你的判断,你先仔细检查一下你的程序语法上的错误?一般来说,C语言编译器本身出错的概率是极低的,不会把一个正确的源程序误认为是有错误的;
(2)、如果第(1)个问题确实不存在,那么你再仔细检查程序上的隐含错误?例如:虽然定义了某个变量,但是未进行初始化就使用、或者是虽然定义了一个指针变量,但是未成功分配内存,就引用了指针变量,导致程序崩溃?这个问题尤其要引起注意!!!
举例来说:
...... /* 前面的若干行代码省略 */
char * my_memory ;
my_memory = (char *)malloc( 1000 ) ; /* 假设动态分配 1000 个字节的内存 */
if( my_memory == NULL ) /* 若内存分配失败,则返回一个空指针 NULL */
{
printf("Memory allocation failured !\n") ; /* 打印出错信息 */
exit(1) ; /* 退出系统 */
}
else /* 内存分配成功,继续往下执行 */
strcpy(my_memory, "This is a test string ....." ) ;
...... /* 后面的若干行代码也省略 */
如果缺少了这个 if 判断语句,用于判断内存分配是否成功,程序就继续往下执行?那么即使内存分配失败了,后面的程序代码还在使用 my_memory 指针变量,此时程序肯定就会崩溃了。
尤其是 C 语言,其特点就是:功能极其强大,写法极其灵活、自由,所以这也是 C 语言不容易熟练掌握的地方。必须要通过编写相当数量的代码,积累丰富的编程经验才行。
万企明道
2024-08-07 广告
2024-08-07 广告
无代码平台是我们公司致力于为企业提供的一项创新技术解决方案,它让非技术背景的用户也能通过图形化界面搭建应用,无需编写代码。该平台简化了软件开发流程,加速了项目上线时间,降低了IT成本,同时提升了业务部门的自主性和灵活性。无论是快速原型设计、...
点击进入详情页
本回答由万企明道提供
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-02-23 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
关注
展开全部
语法有错误。仔细调试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎样?没看见
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询