我正在尝试在C中构建一个字符串,然后将该字符串存储在结构中。然而,当我构建我的字符串并将其打印出来进行测试时,我会在正确的字符串后获得额外难以理解的字符。任何建议都会很棒。
我的代码
typedef struct
{
char *context;
int numOnes;
int numZeros;
}Pattern;
void getPrediction(int t,int *stream){
int end = beg;
int count = 0;
char *pred, str[t+1];
pred = str;
int n = t;
while(count<t){
//printf("%d\n", stream[end]);
if(stream[end] == 1){
pred[count]= '1';
}
else{
pred[count]='0';
}
end--;
n--;
count++;
}
printf("%s\n",pred);
beg--;
Pattern newPat={pred,1,0}; //testing purposes
printf("%s\n",newPat.context); //testing purposes
}
答案 0 :(得分:4)
printf("%s"
需要一个字符串,它被定义为一系列字符后跟一个空字符。你没有提供空字符。
要解决此问题,请在pred[count] = 0;
之前printf
。