首页 新闻 赞助 找找看

c语言新手提问:为什么s[0]输出为空?

0
悬赏园豆:200 [已解决问题] 解决于 2019-12-15 19:41

include <stdio.h>

include <malloc.h>

int main()
{
char a,s[100];
int n,i;
scanf("%d",&n);
a=(char)malloc(n);
gets(a);
for(i=0;i<100;i++)
s[i]=(char
)malloc(n);
strcpy(s[0],a);
puts(s[0]);
getchar();
getchar();
return 0;
}

杜一墨的主页 杜一墨 | 初学一级 | 园豆:8
提问于:2019-12-13 10:25
< >
分享
最佳答案
1

for(i=0;i<100;i++)
s[i]=(char)malloc(n);
你确认你知道这一段自己在干什么

收获园豆:200
窗户 | 小虾三级 |园豆:886 | 2019-12-15 18:57

请问该怎么改?

杜一墨 | 园豆:8 (初学一级) | 2019-12-15 19:27

我那个a和s数组前面都带个*号,不知为什么传上去就没有了

杜一墨 | 园豆:8 (初学一级) | 2019-12-15 19:31

@杜一墨:

int main()
{
    char *a;
    char *s[100];
    int n,i;
    scanf("%d",&n);
    a=(char*)malloc(n);
    gets(a);
    for(i=0;i<100;i++)
        s[i]=(char*)malloc(n);
    strcpy(s[0],a);
    puts(s[0]);
    getchar();
    getchar();
    return 0;
}

我猜你的意思是这个?
这么多getchar?
头文件也没包。
gets其实很不安全。
我建议你还是装个linux来写C语言程序吧。

窗户 | 园豆:886 (小虾三级) | 2019-12-15 19:32

@窗户: 嗯。。。

杜一墨 | 园豆:8 (初学一级) | 2019-12-15 19:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册