我基本上想要将我正在读取的数据数据传递给不同的函数并最终绘制它。
该数组包含32位字'1'和'0',然后我想将这些单独的位加在一起以查看我的数据峰值。换句话说,如果我将“0100”添加到“0110”,我会得到“0210” - 使用单独的箱子和绘图可能更容易完成。
目前我正在把垃圾拿出来。
void binary(int convert, int* dat) {
bitset<32> bits(convert);
//cout << bits.to_string() << endl;
char data[32];
for(unsigned i = 0; i < 32; ++i) {
data[i] = bits[i];
}
for(unsigned i = 32; i; --i) {
dat[i] = (int(data[i-1]))+dat[i];
}
}
void SerDi() {
int dat[32];
cout << " Reading data from memory..." << endl;
ValVector< uint32_t> data=hw.getNode("SerDi.RAM").readBlock(8);
hw.dispatch();
cout << data[0]<<endl;
cout << data[1]<<endl;
for (unsigned i = 2; i < 7; i++) {
binary(data[i], dat);
}
cout << dat[7] << endl;
graph(dat); //passes the array to a place where I can plot the graph
}
答案 0 :(得分:1)
你有
int dat[32];
但是在转换中你有i = 32
和dat[i]
这会访问数组之外的内容,会发生不好的事情。
也没有初始化。在某处添加memset / loop以使dat
最初0
。