Я пишу программу на C, но у меня проблемы с моим массивом символов. Я продолжаю получать мусор, когда печатаю его с помощью prinf. Вот пример того, что я получаю, когда я печатаю его:как избавиться от мусора в массиве символов?
символ на t.symbol является Aôÿ¿
символ в табл [0] .symbol есть А
символ в табл [1] .symbol является
символ в табл [2] .symbol является
символа в табл [3] .symbol является д
символа в табл [4] .symbol является электронной
символа в табл [5] .symbol является F
char at tabl [6] .symbol is g
char at tabl [7] .symbol is h
char at tabl [8] .symbol есть я
символа в табл [9] .symbol есть х
символа при Т [0] .symbol является a0AÃ
символа при Т [1] .symbol является б) @ a4
символа при Т [2] .symbol является ЦХПОМ *
символа при Т [3] .symbol является Aôÿ¿
символа при Т [4] .symbol является Перейти
кто-то расскажет мне, как избавиться от мусора в массиве символов?
вот мой код
#define MAX 100
#ifndef SYMBSIZE
#define SYMBSIZE 1
#endif
typedef struct tableme
{
char symbol[SYMBSIZE];
int value;
int casenmbr;
int otherinfo;
}tabletype;
int main(int argc, char **argv)
{
tabletype t[MAX];
t[3].symbol[0] = 'A';
t[0].value=1;
t[0].casenmbr = 7;
t[0].otherinfo = 682;
tabletype tabl[MAX];
tabl[0].value = 1;
tabl[0].symbol[0] = 'A';
tabl[1].value = 11;
tabl[1].symbol[0]= 'a';
tabl[2].value = 12;
tabl[2].symbol[0] = 'a';
tabl[3].value = 13;
tabl[3].symbol[0] = 'd';
tabl[4].value = 14;
tabl[4].symbol[0] = 'e';
tabl[5].value = 15;
tabl[5].symbol[0] = 'f';
tabl[6].value = 16;
tabl[6].symbol[0] = 'g';
tabl[7].value = 17;
tabl[7].symbol[0] = 'h';
tabl[8].symbol[0] = 'i';
tabl[9].symbol[0] = 'x';
t[1].symbol[0] = 'b';
t[0].symbol[0]= 'a';
t[2].symbol[0]= 'c';
t[4].symbol[0]= 'g';
printf("char at t.symbol is %s \n", t[3].symbol);
for(x=0;x<10;x++)
{
printf("char at tabl[%d].symbol is %s \n",x, tabl[x].symbol);
}
int j;
for(j = 0; j<5;j++)
{
printf("char at t[%d].symbol is %s \n",j, t[j].symbol);
}
return 0;
}
спасибо, он решил мою проблему. –
В качестве дополнения к тому, что сказал gabe, причина, по которой вы получаете дополнительную тарабарщину, когда пытаетесь напечатать в виде строки, состоит в том, что ваши массивы не инициализированы. Таблетка, которую вы видите, - это мусор, который оказался в памяти, используемой массивами, когда они были выделены. – bta