Dưới đây là đoạn code mẫu mà tôi chạy trên Visual Studio 2010:C++: Khởi tạo con trỏ đến con trỏ đến int
#include <iostream>
int main()
{
int **p(NULL);
}
tôi nhận được lỗi này: error C2059: syntax error : 'constant'
Nhưng nếu tôi thay đổi int **p(NULL);
-int **p = NULL;
sự trên mã biên dịch tốt.
Đã kiểm tra điều này trên GCC (Phiên bản: 4.4.2) và cả hai đều hoạt động tốt. Tôi đang thiếu gì ở đây?
có thể, trình biên dịch của bạn không hỗ trợ. –
Dường như là một lỗi trong trình biên dịch. Hấp dẫn! Lưu ý rằng 'int * p (0);' works, trong khi 'int ** p (0);' thì không. – avakar
Lưu ý rằng nếu bạn định nghĩa 'typedef int * PINT;' và sau đó viết 'PINT * p (NULL);' nó cũng hoạt động tốt. 'int ** p (NULL);' chắc chắn phải hoạt động tốt. Thực tế là nó không thú vị. – LihO