| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1562 人关注过本帖
标题:for循环中的格式输入执行后程序无法运行
只看楼主 加入收藏
xuxlone
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-1-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
for循环中的格式输入执行后程序无法运行
#include "stdio.h"
#include "stdlib.h"
void main()
{
    int pa , *num_stu , *num_ti ;
    int i , j , k ;
    char ***data_an , ***data_cri ;
    num_stu = (int *)malloc(2) ;
    num_ti = (int *)malloc(2) ;
    data_an = (char ***)malloc(1) ;
    data_cri = (char ***)malloc(1) ;
    scanf ("%d\n",&pa) ;
    for (i=0 ; i<pa ; i++ )
    {
        scanf("%d" , num_ti+i  );
        scanf("%d\n" , num_stu+i  );   
        for (j = 0 ; j<num_stu[i] ; j++ )
        {
            for (k =0 ; k<num_ti[i] ; k++ )
            {
                scanf("%c" , data_an[i][j]+k ) ;
                scanf("%c\n" , data_cri[i][j]+k ) ;   
            }   
        }
    }
    printf("%c" , data_an[0][0][0]);
   
}
小生初出码卢,求路过的豪侠指条明路。在执行完
1
1 1
A F
的输入回车,就显示程序无法运行了。请问是格式化输入用得不对吗
图片附件: 游客没有浏览图片的权限,请 登录注册




[此贴子已经被作者于2016-2-17 22:43编辑过]

搜索更多相关主题的帖子: include 
2016-02-17 13:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
初出茅廬就用三個星號,俺祇能路過。
收到的鲜花
  • 杭012016-02-18 16:27 送鲜花  1朵   附言:我很赞同

授人以渔,不授人以鱼。
2016-02-17 13:32
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:4 
楼主,你头文件为啥用“”,别告诉我是老师教你的
2016-02-17 17:47
蓝色风暴cl
Rank: 8Rank: 8
来 自:新疆
等 级:蝙蝠侠
威 望:3
帖 子:163
专家分:704
注 册:2015-9-6
收藏
得分:4 
***指向谁呢?没懂。。

欢迎大家加好友哦,多找我聊聊吧!
2016-02-17 18:46
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:4 
回复 3楼 foxeer
用双引号没问题。

能编个毛线衣吗?
2016-02-17 20:14
xuxlone
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-1-27
收藏
得分:0 
回复 5楼 wmf2014
图片附件: 游客没有浏览图片的权限,请 登录注册

请问这种情况是死循环吗
2016-02-17 22:42
zanshixiang
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2016-2-17
收藏
得分:4 
动态申请数组内存方法有问题,所以在scanf的时候内存访问越界导致程序出错,正确的动态申请数组内存如下:
int* pIntArray = (int*)malloc( 8 );//申请8个字节,存储两个int类型数据的数组
char** pArrary = (char**)malloc( 8 );//申请8个字节,可以存储两个char*类型指针的数组
pArrary[ 0 ] = (char*)malloc( 8 );//申请8个字节,可以存储char字符数组
pArrary[ 1 ] = (char*)malloc( 8 );//申请8个字节,可以存储char字符数组
2016-02-17 23:04
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:0 
回复 5楼 wmf2014
真的,以前没试过
2016-02-18 09:31
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:4 
回复 8楼 foxeer
说实话, 我都快给忘了还可以include<>了.  


C语言中两种方式使用#include命令, #include <>与#include ""的区别
一种是在包含指令#include后面”<>”将头文件名括起来。这种方式用于标准或系统提供的头文件,到保存系统标准头文件的位置查找头文件。
另一种是在包含指令#include后用双引号””将头文件包括起来。这种方式常用与程序员自己的头文件。用这种格式时,C编译器先查找当前目录是否有指定名称的头文件,然后在从标准头文件目录中查找。



代码测试环境:  WinXP+C-Free5.0.
2016-02-18 15:34
xuxlone
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-1-27
收藏
得分:0 
回复 7楼 zanshixiang
malloc函数后面括号里面的数字不是动态数组元素的字节长度吗,请问为什么需要加那么长呢
2016-02-28 14:31
快速回复:for循环中的格式输入执行后程序无法运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028961 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved