动态分区 为什么不会输出呢?
帮忙看一下吧 ,究竟哪错了?#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会造成内存泄漏的阿....
----------------解决方案--------------------------------------------------------