// main.cpp
// Demonstration for pointer + int error

#include
<iterator>
#include
<iostream>
#include
<algorithm>
using namespace std ;

int main()
{
// Total seven elements
int arr[] = {1, 2, 3, 4, 5, 6, 7,} ;

// output
ostream_iterator<int> out(cout, " ") ;
copy(arr, arr
+ sizeof(arr), out) ; // You know what's going wrong?

return 0 ;
}
copy(arr, arr + sizeof(arr), out) ;

分析:

   问题在于copy(arr, arr + sizeof(arr), out) ; 一个指针 + 一个整数 的结果是指针偏移值加上整数所代表其元素的偏移值. 因此,

   正确的写法是:

              copy(arr, arr + sizeof(arr)/sizeof(arr[0]), out) ;

相关文章:

  • 2022-03-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
  • 2021-11-19
  • 2021-11-12
  • 2021-11-10
猜你喜欢
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
  • 2020-02-26
相关资源
相似解决方案