#include <cstdio> #include <cstring> #include <iostream> int main(void) { char dst[8]; std::string src="abcdef"; std::cout << "sizeof dst:" << sizeof(dst) << std::endl; std::cout << "sizeof src:" << sizeof(src) << std::endl; std::cout << "std::size dst:" << std::size(dst) << std::endl; std::cout << "std::size src:" << std::size(src) << std::endl; return 0; }
実行結果 sizeof dst:8 sizeof src:32 std::size dst:8 std::size src:6
つまり、stringの文字数をsizeof()で取得しようとすると、意図しない結果になるので、std::size()使おうねという話。
コメントを残す