01/10/2018, 08:22
Tại sao sizeof của con trỏ trên hệ điều hành 64bit chỉ có 4 bytes?
Theo e được biết thì trên hệ điều hành 32bit, con trỏ có kích thước là 4 bytes, còn trên hệ điều hành 64bit, con trỏ có kích thước là 8 bytes.
Nhưng khi e thử chạy đoạn code sau:
#include <stdio.h>
int main()
{
printf("sizeof(x) = %d", sizeof(int *));
return 0;
}
Thì compiler của Codeblocks (gcc) lại cho ra kết quả là 4 ???
Thử float *
hay char *
… vẫn thế
Xin các ý kiến của cao nhân
Bài liên quan
Viết trên hệ điều hành 64 nhưng build cho hệ điều hành 32.
Do trình biên dịch 32 bit đấy
@Duong_Act @sontx vậy sửa như thế nào thế mấy anh ? Em download Codeblocks trên trang chủ của nó thì thấy chỉ hiện version cho win 7/8/10 chứ ko thấy nói gì về 32bit hay 64bit cả
Cài mingw-w64 rồi thay config thôi :3
Tải cái mingw mới này về (có gcc v6.3.0 luôn đất)
https://sourceforge.net/projects/mingw-w64/
Rồi khi cài nhớ chọn x86_64 (chọn i686 nếu muốn 32bit).
Cài xong rồi thì Settings -> Compiler -> Toolchain …
Configure như hình rồi restart codeblock
Test :~
Bao nhiêu bit là do compiler chứ không phải do ide. Nên thay compiler thì sẽ ok. Như bạn ở trên chỉ.
@drgnz em thay tới chỗ này rồi
thì CB nó báo là không thể tìm thấy compiler rồi không run được luôn anh ơi
(em cài mingw-w64 trong thư mục C:\Program Files)