萌新请教C语言简单问题,,为什么这程序运行没反应呢

2019-07-15 07:16发布

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

#define uint  unsigned int
#define uchar unsigned char

main()
{
        uchar *buf="#command#";
        uchar *sub;
        uchar *well="command";


        int a = 0;
        int i = 0;
        strncpy(sub,buf+1,7);
        if(strncmp(sub,well,7) == 0)
                a = 1;
        printf("%d ",a);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
fair2017
1楼-- · 2019-07-15 11:34
 精彩回答 2  元偷偷看……
lljj123
2楼-- · 2019-07-15 12:14
该原因是因为定义的指针悬挂造成的,没有确切的地址赋给这个指针,造成错误
♂落葉歸根
3楼-- · 2019-07-15 14:03
因为这句strncpy(sub,buf+1,7);执行完,uchar *sub="command#";而与后面的uchar *well="command"比较不一致,多了#,所以不执行

一周热门 更多>