void func(int* param){};
func(&123); //error: '&' on constant
funct(&int(123)) //error
Trả lời
Đó không phải là cách con trỏ hoạt động.
Trước tiên bạn phải phân bổ bộ nhớ cho 123 bạn, như thế này:
int x = 123;
func(&x);
Ông hỏi làm thế nào để tạo ra con trỏ trên stack, không phải trên đống. Ví dụ thứ hai cũng thiếu 'free (x); ' –
Bạn không thể lấy địa chỉ của một tạm thời. Nhà điều hành địa chỉ (&
) yêu cầu một đối số lvalue
.
void func(int* param){};
int main(){
int k = 123;
func(&k); //fine now
}
' 123' không phải là tạm thời, nó là một chữ. – fredoverflow
'int (123)' là tạm thời, 123 không phải là –
Từ khóa &
phải và chỉ nên được áp dụng cho các biến thực tế chứ không phải toán hạng.
Khai báo một biến int, rồi trỏ chuột vào nó:
int main() {
int x = 123;
func(&x);
}
Nếu bạn muốn khai báo một con trỏ trên stack, sau đó khai báo một biến int-con trỏ:
int* p = &x;
func(p);
void func(int* param)
{
std::cout << * param << std::endl;
}
int main(int argc, char** argv)
{
int a = 123;
func(&a);
return 0;
}
Vấn đề là bạn đang cố gắng lấy địa chỉ của một giá trị. Đặt nó thành một lvalue:
n = 123;
func(&n);
- 1. Làm cách nào để sắp xếp một con trỏ tới một con trỏ tới một int?
- 2. cơ sở con trỏ và con trỏ ngăn xếp
- 3. x86 nơi điểm con trỏ ngăn xếp?
- 4. C++: Khởi tạo con trỏ đến con trỏ đến int
- 5. Làm thế nào để tạo một con trỏ trong C++ trỏ đến một mảng đa tham số của int?
- 6. Nếu tôi có một con trỏ void, làm thế nào để đặt một int vào nó?
- 7. Con trỏ ngăn xếp giả ngẫu nhiên dưới Linux?
- 8. Con trỏ C++. Làm thế nào để gán giá trị cho một struct con trỏ?
- 9. Con trỏ trong C# để tạo mảng int?
- 10. Tạo đối tượng trên ngăn xếp/heap?
- 11. Làm thế nào để tăng một địa chỉ con trỏ và giá trị của con trỏ?
- 12. Làm thế nào để tôi so sánh mối quan hệ của con trỏ thành một lỗi?
- 13. Làm cách nào để tạo một mảng con trỏ?
- 14. "con trỏ" này bị lỗi trong theo dõi ngăn xếp
- 15. Làm thế nào để tạo một con trỏ trỏ tới bất kỳ phần tử mảng nào của một mảng 2D?
- 16. Làm cách nào để tạo một mảng trong C++ trên heap thay vì ngăn xếp?
- 17. Làm thế nào để xác định một ngăn xếp char?
- 18. C++: Làm thế nào để ngăn chặn mẫu chuyên con trỏ?
- 19. Làm thế nào để thiết kế một ngăn xếp monadic?
- 20. làm thế nào để tạo ra một vector của các con trỏ tới một vector
- 21. Làm thế nào để khởi tạo một chuỗi với một con trỏ điền vào Common Lisp?
- 22. Làm thế nào để tạo một ngăn xếp cơ sở dữ liệu trong Happstack?
- 23. Khởi tạo một con trỏ
- 24. Tạo con trỏ để trỏ đến một mảng
- 25. Ngăn xếp ngăn xếp lạ?
- 26. Làm thế nào để tràn ngăn xếp mà không cần đẩy khung ngăn xếp mới?
- 27. Làm thế nào để tạo ra một dấu vết ngăn xếp sâu trong node.js?
- 28. Làm thế nào là đáy ngăn xếp được xác định?
- 29. Làm thế nào để bắt ngoại lệ con trỏ null?
- 30. URL ngăn xếp ngăn xếp hoạt động như thế nào?
'int (123)' vẫn không cấp phát bộ nhớ bạn có thể lấy địa chỉ. Đó là một chữ, được in thành 'int'. –