Code con trỏ bị deprecated conversion from string constant to 'char*' [-Wwrite-strings]

Em chào các tiền bối.
Em có thắc mắc đó là:
Tại sao khi khởi tạo con trỏ chúng ta có thể gán cho nó giá trị bằng địa chỉ của biến khác hoặc một xâu ký tự nhưng lại không thể gán các giá trị kiểu int cho nó.
Em có đọc lỗi biên dịch thì nó bảo deprecated conversion from string constant to 'char*' [-Wwrite-strings] em cũng không hiểu nó nói gì. Mong a/c giải đáp giúp em ạ.
Đây là đoạn code em sử dụng.

#include <iostream>
#include <cstring>
#include <string.h>
using namespace std;

int main() {
	
	int a = 5;
	int *b = 2378743;
	char *p = "u23VietNam";
	return 0;
}

Đây là code C++, không phải code C. Và deprecated conversion from string constant to 'char*' [-Wwrite-strings] cũng chỉ là cảnh báo, không phải lỗi.

"u23VietNam" là một string, không phải const char*. Việc gán string vào char* là hoàn toàn chấp nhận được ở C nhưng đây là C++, sẽ có cảnh báo đến cho bạn.

Một giải pháp đơn giản là không dùng char* khi code C++ nữa.

Một topic khác giống như bạn:

Link hữu ích cho bạn:

https://www.py4u.net/discuss/63055

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?