Kiểm tra array empty khi được truyền vào hàm?
Mọi người cho em hỏi , em muốn kiểm tra một array có empty hay không ? Em thử đi tìm Length của nó , em đã search trên mạng có rất là nhiều cách ví dụ :
Ngoài ra còn có những cách khác sử dụng template ! Nhưng các cách này khi áp dụng với một array truyền vào một hàm thì nó sẽ không hoạt động ?
Ví dụ em có hàm getLenghth( int a[] )
Thì kết quả sẽ ra sai ! Mấy anh (chị ) nào có cách làm nào chỉ em với ? Tính length của Array khi được truyền vào hàm thôi nha ! Không phải để trong main giống ví dụ 1 của em đâu !
Không có cách nào đâu.
Cái trên ở hàm main do a là 1 mảng có 2 pt nên có thể tính dc số phần tử có thể có.
Trong th ở hàm getLength thì khác, nó tương đương với 1 con trỏ, sizeof(a) chỉ trả về kích thước của con trỏ a thôi. Không tính được kích thước của mảng
Vậy có cách nào kiểm tra được mảng đó rỗng không bạn ?
Mình có một cách để kiểm tra array có rỗng không ? đó là mình xét phần tử đầu của mảng *a (a[0]) đối với visual studio thì vị trí trong mảng không có giá trị sẽ được lưu là số âm (-872223) chẳng han !
Mình xét if(a[0] <0) return array is empty ? Nhưng mình nghĩ cách làm này không hiểu quả được :3 vì sơ một số IDE khác sẽ ra kết quả khác
Cách giải quyết
#define maxsize 100
int array[maxsize];
thì mặc định các phần tử của array có giá trị là 0.Ví dụ như mảng đã được thiết lặp về 0 Hàm dưới đây dùng để kiểm tra !