Địa chỉ bắt đầu có thể được lấy từ tên hàm, cách tìm địa chỉ kết thúc của một hàm? Tôi đã được hỏi câu hỏi này trong cuộc phỏng vấn:Làm thế nào để tìm địa chỉ kết thúc của một hàm trong một prog C?
Xem xét hàm f() mà tôi đã viết đã vượt qua phần văn bản và bắt đầu ghi phần lân cận (phần dữ liệu). Làm thế nào tôi có thể xử lý tình trạng này? Ngoài ra, ông nói thêm rằng tôi nên xử lý nó thông qua mã C. Tôi không nên xem tập tin bản đồ ký hiệu và lấy địa chỉ.
Không có cách tiêu chuẩn. Bạn có thể thử lấy địa chỉ của hàm tiếp theo trong tệp, sau đó trừ đi - nhưng không đảm bảo nó sẽ hoạt động. Ví dụ: trình liên kết có thể sắp xếp các hàm theo thứ tự bảng chữ cái, để có thể bao gồm khoảng trống cho các hàm khác hoặc có thể cung cấp kích thước âm. –
Bạn phải chỉ định kiến trúc và ABI hoặc bạn sẽ không nhận được câu trả lời hữu ích. –
"Tôi đã được hỏi câu hỏi này trong cuộc phỏng vấn" Tôi nghi ngờ rằng bạn đã hiểu sai câu hỏi, và họ đã hỏi làm thế nào để nói nếu bạn bắt đầu vô tình thực hiện dữ liệu. Câu trả lời sẽ là "Data Execution Prevention" nếu không được biết đến là một tính năng phần cứng để gắn cờ bộ nhớ không được thực hiện. – Ben