use %zu to print size_t variables