sizeof在创建数组后在c ++中运行异常

ero*_*gol -7 c++ arrays sizeof

可能重复:
如何查找sizeof(指向数组的指针)

我正在使用以下代码创建一个数组

float *A;
A = (float *) malloc(100*sizeof(float));
float *B;
B = (float *) malloc(100*sizeof(float));
Run Code Online (Sandbox Code Playgroud)

但在这些之后,当我按下面的方式键入A和B的大小时,我得到2,因为我希望看到100.

sizeof(A)/sizeof(float)
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 11

你的期望是错误的.A是一个float*,所以它的大小将是sizeof(float*),无论你如何实际分配它.

如果你有一个静态数组 - 即float A[100],那么这将有效.

由于这是C++,请使用std::arraystd::vector.

最坏的情况,使用new[].绝对不要使用malloc.

  • @Erogol会有好的建议并停止编写C代码并将其标记为C++.使用`vector`或`array`. (8认同)
  • 史诗,史诗般的失败. (5认同)
  • @Erogol停止像被宠坏的顽固孩子一样发脾气.你已经得到了答案.惹恼并侮辱更多试图帮助你的人,即使他们没有这样做,看看它有多好~~ (4认同)
  • @Erogol所以,等等,你想学习C或C++吗?你知道他们是不同的,对吧? (3认同)
  • @Erogol如果你标记你的问题`C++`,那么期待C++的答案. (2认同)