求助malloc创建字符串并赋值!

茫然的哈士奇 2021-03-19 06:52:11
我尝试使用malloc创建字符串,然后赋值。但是失败了,这是为什么?连报错也没有。

#include <stdio.h>
#include <stdlib.h>

int main(){
char *a = (char*)malloc(5 * sizeof(char));
char *b = a;
for(int i=0; i<5;i++){
*(b++) = '1';
}
printf("%s\n", *a);
}
...全文
81 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
引用 1 楼 flying_music 的回复:

printf("%s\n", a);


没有以'\0'结束呢,这不算是一个字符串呢;

回复
forever74 03-19
而且缺少结束符
回复
c 语言字符串要以 '\0' 结束。
以下代码供参考

#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
char *a = (char*)malloc((N+1) * sizeof(char));
int i;
for( i=0; i<N;i++)
{
*(a+i) = '1';
}
*(a+i) = '\0';
printf("%s\n", a);
return 0 ;
}
回复

printf("%s\n", a);
回复
发动态
发帖子
C语言
创建于2007-09-28

6.2w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告