阵列打印Segfault

时间:2014-09-06 17:53:45

标签: c++ arrays pointers

我有以下代码,代码编译并运行如果我没有尝试打印我正在生成的数组,但是第二次尝试打印数组时会出现段错误。我对于出了什么问题很困惑?我正在使用mac上的基本valgrind工具告诉我我正在尝试访问未映射的内存区域。如果我尝试使用printf(“%f \ n”,data [i]); <问题也会发生。 / p>

#define matA_W 1024
#define matA_H 1024

void  genMatrix(float* data, int size)
{
  for (int i = 0; i < size; ++i) {
    data[i] = float (rand() /RAND_MAX);
  }
  for (int i = 0; i < size; ++i) {
    std::cout << data[i] << std::endl;
  }

}


int main() {
  srand(2006)
  unsigned int size_A = matA_W * matA_H;
  unsigned int memA = sizeof(float) * size_A;
  float* matA = (float*) malloc(memA);

  std::cout << size_A << std::endl;
  std::cout << memA << std::endl;

  genMatrix(matA,size_A);

  return 0;


}

1 个答案:

答案 0 :(得分:1)

memA应该是size_A来电{。}}。