我试图在双数组中定义多个字符串 values [0] [] =“something”,值[1] [] =“其他东西...... 然后我想填充每个字符串的长度,使它们是128个字符。 最后,我想将128个字符串拆分为4个字符串,然后将它们写成4乘4(因此写入32个字符串)。我知道我有几个问题,但有人可以协助吗?
我发现了问题。这是我的代码,它做我想要的。感谢所有的建议。
for(k=0;k<inputs;k++){//do for all inputs
flag = 0;
int len = strlen(values[k]);
int padded_len = 127;
int i;
//pad inputs
for(i = 0; i < padded_len-len; i++){
strcat(values[k], "0");
}
for (off = 0; off < 128; off += 4){
strncpy(temp[k], values[k]+off, 4);
temp[k] = '\0';
temp_int = *((uint32 *) &values[k][off]);
if(flag==0){
//write to HW regy
flag=1;
}
else{
//write to HW regx
flag=0;
}
}
答案 0 :(得分:0)
当你引用我们的values []数组时,看起来你的填充部分有错误,所以它应该是:
//pad inputs
for(i = 0; i < padded_len-len; i++){
strcat(values[k], "0");
}
编辑:
此外,您需要增加字符串数组的大小以包含空终止符的空间:
... char values[3][129]...