01/10/2018, 16:39
Tìm số phần tử trong vùng nhớ trỏ đến
mình có con trỏ trỏ đến mảng khai báo như sau:
string* str;
Bây giờ mình muốn lấy số lượng phần tử(số lượng chuỗi string) mà con trỏ này trỏ đến thì phải làm như thế nào vậy?
Bài liên quan
Không có đâu bạn nó chỉ có vậy thôi.
Nhưng vì sao mảng tĩnh làm được? Vì con số đó được lấy tại chỗ và thay vào trong lúc biên dịch. Chứ con trỏ có thể từ ngoài đem vào thì sao mà tính
Không làm được nhé bạn. Thế nên người ta mới phải lưu biến
n
cho độ dài mảng.Mà giờ người ta toàn dùng
std::vector
@rogp10 Ví dụ mình khai báo nó như
str = new string[num]
. vậy làm sao để xác định được num giả sử khi mình quên mất giá trị của nóĐã nói là không được mà :))
Thế nên mới bảo là dùng thêm 1 biến để lưu.
Hoặc là dùng
std::vector<string> str = std::vector<string>()
. Khi nào cần đọc thì gọistr.size()
ra, tự update theo kích thước củastr
không cần phải tự mình thay đổi như biến tạm kia.@TrầnHoàn Cảm ơn bạn. Dù sao mình vẫn muốn dùng mảng hơn.
Bản chất nó không được còn cố mãi
Được voi đòi 2 bà Trưng
Liệu có thể dùng malloc rồi chia cho số ô nhớ mà kiểu dữ liệu nó chiếm từng ô hay không ?
đếm từ vị trí con trỏ trỏ đến cho đến ký tự \0 thì phải
Không được, nếu như ô nhớ tiếp theo khối dữ liệu ấy đã có một giá trị nào đó. Với cả cách đó là dùng cho
char*
chứ ko dùng được chochar**
hoặcstring*
Với cả cách đếm này chỉ dùng với C, khi mà người ta khi nhập chuỗi bằng
char*
phải chủ động nhập ký tự null ở cuối cùng. Còn đây làstring
, không phảichar*