请问为什么我的程序会有乱码

来源:百度知道 编辑:UC知道 时间:2024/07/01 00:23:41
我是用Turboc++3.0编译的,运行时没问题,就是偶尔我里边的变量就会被改值,不知道为什么,我定义的是
struct abc
{
char *str;
char *ztValue;
char *ztDanWei;
}
然后定义了一个数组
struct abc aammdd[]={
"111","加工","你好",
...
}
我运行时是把aammdd里边的值显示到屏幕上,大部分是没问题,有时候就会输出乱码,这是怎么回事?
to daisha2001
你好,如果编码不一样,为什么有的时候显示是正常的啊,就是说刚进去是正常,我移动光标或是进行别的操作手就不正常了,刚才又试出这样的问题:
char *abc[3]={"你好","aaa","你好"};
char *ddd[3]={"加工","33","加工"};
运行时ddd容易有乱码,如果把两行倒过来写:
char *ddd[3]={"加工","33","加工"};
char *abc[3]={"你好","aaa","你好"};
abc又容易有乱码,这是怎么回事?(刚开始进入界面是两者都是正常的)

home2001me 谢谢你的回答,不过我还想知道为什么不能用char * 来定义,想来想结贴,但结了后你就没法回复我的问题了

#include <stdio.h>
struct abc
{
char str[100];
char ztValue[100];
char ztDanWei[100];
} ;

void main()
{
struct abc aammdd[3]={{"111","加工","你好"} ,{"112","加工2","你好2"},{"113","加工3","你好3"}};
char abc1[3][100]={"你好","aaa","你好"};
char ddd[3][100]={"加工","33","加工"};
printf("%s,%s,%s\n",abc1[0],abc1[1],abc1[2]) ;
printf("%s,%s,%s\n",ddd[0],ddd[1],ddd[2]) ;

for(int i=0;i<3;i++)
printf("%s,%s,%s\n",aammdd[i].str,aammdd[i].ztValue,aammdd[i].ztDanWei) ;
}