DAY 18 2022-09-18 10:52 采纳率: 66.7%
浏览 31
已结题

指针数组打印字符数组的问题

问题遇到的现象和发生背景

声明了一个字符数组,想用指针数组把字符数组打印出来,不知道为什么出现有乱码(虽然除开乱码后是理想的结果),麻烦各位帮我指正一下

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char buffer[12][12];
    char *ptr[12];
    int a,b;
    for (a=0;a<12;a++)
    {
        for (b=0;b<12;b++)
        {
            buffer[a][b]='x';
        }
        ptr[a]=buffer[a];
        puts(ptr[a]);
    }
    
    return 0;
}


运行结果及报错内容

img

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-18 11:06
    关注

    输出字符串时,字符数组结尾一定要有字符串结束符,而你没有

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {
        char buffer[12][13] = {0};
        char *ptr[12];
        int a,b;
        for (a=0;a<12;a++)
        {
            for (b=0;b<12;b++)
            {
                buffer[a][b]='x';
            }
            ptr[a]=buffer[a];
            puts(ptr[a]);
        }
        
        return 0;
    }
     
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月18日