#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()使おうねという話。
コメントを残す