Đi qua K & RI quá nhìn vào đoạn mã sau:C Array/Pointer vấn đề
#define ALLOCSIZE 1000
static char allocbuf[MAXLINE];
static char *allocp = allocbuf
char *alloc(int n){
if (allocbuf+ALLOCSIZE-allocp>=n){
allocp+=n;
return allocp-n;
}
else { ... }
Tôi sợ câu hỏi của tôi rất đơn giản, nhưng tôi không thể có được vòng đầu của tôi là "nếu " hàng. Giá trị của allocbuf là bao nhiêu? Nó là một mảng char, phải không? Tôi nhìn lại những thứ trong cuốn sách, nhưng nó không giúp được gì. allocp ban đầu trỏ đến phần tử zeroth của mảng, phải không?
ALLOCSIZE là gì? cũng lưu ý rằng allocbuf là một hằng số (địa chỉ của mảng) nên nó không thể lấy bất kỳ giá trị nào khác. – deStrangis
Tôi nghĩ rằng có điều gì đó bị thiếu trong mã –
Xin lỗi, tôi đã viết sai dòng #define ... chỉnh sửa –