当前位置: 代码迷 >> C语言 >> 动态分区 为什么不会输出呢?
  详细解决方案

动态分区 为什么不会输出呢?

热度:130   发布时间:2008-05-06 14:25:48.0
动态分区 为什么不会输出呢?
帮忙看一下吧 ,究竟哪错了?

#include<stdio.h>
#include<stdlib.h>
void main()
{
    char *s,*h,*d,*r;
    int n,i,j;
    printf("input n= ");
    
    scanf("%d",&n);
    s=(char *)malloc(n*sizeof(char));
    
    for(h=s,i=1;i<=n;i++)
    {scanf("%c",h++);
    getchar();}
    h='\0';
    for(h=s,i=1;i<=n;i++)
        printf("%c",*h++);
    printf("input j= ");
    scanf("%d",&j);
    r=(char *)malloc(j*sizeof(char));
    for(d=r,i=1;i<=j;i++)
    {scanf("%c",d++);
    getchar();}
    d='\0';


}
搜索更多相关的解决方案: 分区  动态  输出  

----------------解决方案--------------------------------------------------------
试下:
[/color]#include<stdio.h>
#include<stdlib.h>
void main()
{
    char *s,*h;
    int n,i;
    printf("input n= ");   
    scanf("%d",&n);
    getchar();
    s=(char *)malloc(n*sizeof(char));
    for(h=s,i=1;i<=n-1;i++)
    {scanf("%c",h++);
    getchar();}
    h='\0';
    for(h=s,i=1;i<=n-1;i++)
    printf("%c\n",*h++);
    free(s);
}[/size][/font]

[[it] 本帖最后由 lnhaing 于 2008-5-6 15:00 编辑 [/it]]
----------------解决方案--------------------------------------------------------
谢谢了,能运行出来!但为什么分配两次内存空间,就不能运行了呢?
----------------解决方案--------------------------------------------------------
进来的帮帮忙吧,究竟哪里搞错了呢
----------------解决方案--------------------------------------------------------
????????......
----------------解决方案--------------------------------------------------------
不太明白...........
不过你只malloc不free会造成内存泄漏的阿....


----------------解决方案--------------------------------------------------------
  相关解决方案