Có bất kỳ cạm bẫy nào khi sử dụng char * để viết mã nền tảng chéo có truy cập bộ nhớ không?Bất kỳ cạm bẫy nào sử dụng char * thay vì void * khi viết mã nền tảng chéo?
CẬP NHẬT: Ví dụ: tôi có nên kiểm tra trước khi truyền một ký tự dereferenced char * vào một loại nhất định (giả sử int) nếu địa chỉ được căn chỉnh theo kích thước của loại đó không? Một số kiến trúc nhất định có trả về kết quả lạ trên truy cập không được ký hiệu không?
Tôi đang làm việc trên bộ cấp phát bộ nhớ phát để hiểu rõ hơn cách gỡ lỗi các vấn đề về memmory. Tôi đã đến để tin char * 's là thích hợp hơn vì khả năng làm số học con trỏ và dereference chúng trên void *' s, đó là sự thật? Các giả định sau đây có đúng với các nền tảng chung khác nhau không?
sizeof(char) == 1
sizeof(char*) == sizeof(void*)
sizeof(char*) == sizeof(size_t)
Trừ khi bạn đang dereferencing 'char' trường hợp bạn sẽ phải đúc cả hai' char * 'và' void * 'cho bất kỳ loại họ trỏ đến. – Aesthete
Không biết nếu nó được 'bảo đảm' nhưng trong kinh nghiệm của tôi, đầu tiên 2 nên được an toàn. Cái cuối cùng...??. – vdbuilder