cuốn sách gpt4 ai đã làm

C++ const char* đến const char* const

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 02:18:29 28 4
mua khóa gpt4 Nike

Tôi hiện đang viết một bài tập cho lớp của mình, bài tập này được cho là hoạt động như một lớp vỏ rất cơ bản. Tôi gần như đã hoàn tất, nhưng tôi gặp phải giám đốc điều hành và vấn đề với mảng ký tự tham số của tôi. Đây là một đoạn mã nhỏ của tôi.

// Tách nội dung bên trái
issstringstream iss(trái);
while(getline(iss, s, '')){
v.push_back(s);
}

// Lấy chuỗi đã tách và đưa vào mảng
const char* cmd_left[v.size()+1];
for(unsigned int i = 0; i < v.size(); i++){
cmd_left[i] = v.at(i).c_str();
}
cmd_left[v.size()] = 0;
v.clear();

Điều này đã được khai thác

execvp(cmd_left[0], cmd_left);

sai lầm của tôi là

gán3.cxx:96:34: lỗi: chuyển đổi không hợp lệ từ 'const char**' sang 'char* const*' [-fpermissive]

Tôi biết vấn đề là mảng ký tự của tôi không chứa đầy dữ liệu cố định, vì vậy về cơ bản tôi cần lấy nó từ const char* đến const char* const .Tôi đã đọc được điều gì đó về const_cast nội dung, nhưng tôi không chắc liệu đó có phải là điều tôi cần làm hay không.

Nếu bạn muốn, bạn có thể giúp tôi làm cho mảng ký tự của tôi được hàm này chấp nhận một cách chính xác không? Nếu bạn cần tôi đăng thêm mã, vui lòng cho tôi biết.

Cảm ơn

câu trả lời hay nhất

Vấn đề là bạn không thể chuyển các biến const cho các hàm yêu cầu các đối số không phải là const.

nói cách khác,const char* Đúng ký tự * tập hợp con.

xóa bỏ const

/*const*/ char* cmd_left[v.size()+1];

thêm vào đâyconst_cast

cmd_left[i] = const_cast( v.at(i).c_str() );

Các phần khác trong mã của bạn trông có vẻ khó hiểu, nhưng điều này sẽ khiến nó được biên dịch

Về C++ const char* đến const char* const, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/15961715/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress