0

我基本上想将我正在读取的这个数据数组传递给不同的函数并最终绘制它。

该数组包含一个由 '1' 和 '0' 组成的 32 位字,然后我想将这些单独的位加在一起以查看我的数据峰值在哪里。所以换句话说,如果我将“0100”添加到“0110”,我会得到“0210”——这可能更容易通过单独的 bin 和绘图来完成。

目前我只是把垃圾拿出来。

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
}
4

1 回答 1

1

你有

int dat[32];

但是在转换中,你有i = 32并且dat[i]这将访问数组之外​​的东西并且会发生不好的事情。

也没有初始化。在某处添加一个 memset/loop 以创建dat初始0.

于 2013-11-04T17:21:05.497 回答