01/10/2018, 08:53
Về xuất sizeof qua printf
Em đang mày mò học C cơ bản thì thấy khi dùng printf in giá trị của sizeof thì phải dùng %zd. Tại sao phải như vậy khi mình có thể dùng %d, mong anh chị bỏ chút thời gian giải thích giùm em
Bài liên quan
%d chỉ dùng cho int thôi bạn. Mà int thường chỉ có 4 byte, size_t có thể lên đến 8 byte.
Vấn đề nằm ở chỗ ngoài format string thì printf ko có tham số nào cố định. Vì vậy printf chỉ có thể nhìn format string để lấy đúng số byte. Và nếu phía sau bạn % cái gì đó nữa thì nó sẽ bị sai.