求助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);
}
...全文
228 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2021-03-19
  • 打赏
  • 举报
回复
引用 1 楼 flying_music 的回复:

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


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

forever74 2021-03-19
  • 打赏
  • 举报
回复
而且缺少结束符
jianyue--- 2021-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 ;
}
flying_music 2021-03-19
  • 打赏
  • 举报
回复

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

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧