- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
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/
Câu hỏi này đã có câu trả lời ở đây: Tại sao các toán tử gán +=, -=, *=, /= của Java không yêu cầu truyền (11 câu hỏi)
Khi tôi cố chạy đoạn mã sau, List(.of) không biên dịch được và báo lỗi chủ đề. bộ sưu tập gói; nhập java.util.LinkedHashSet;
Tôi đang cố gắng biên dịch một chương trình sử dụng thư viện ChatScript. Đây là mã của tôi trong một tệp có tên main.cpp: #include #include "common.h" sử dụng không gian tên std
Tôi muốn sử dụng ChatScript bên ngoài trong chương trình của mình. Trong tài liệu có ghi: Nhúng Bước #1 Trước tiên, bạn sẽ cần sửa đổi `common.h và
Giả sử tôi có một char và tôi muốn strcat() nó thành một mảng char với một dòng mã. Ví dụ [không thực tế]: strcat("ljsdflusdfg",getchar()); Hoặc tôi muốn làm ngược lại
Tôi có chữ ký loại sau: *Main Lib> let f :: a -> a -> a; f = không xác định *Main Lib> let x :: Char x = undefin;
Tôi đang học cách sử dụng con trỏ trong C (sử dụng malloc và miễn phí), nhưng tôi gặp một số vấn đề với bài tập này. Tôi chỉ muốn tạo một mảng con trỏ trong đó tôi muốn lưu hướng của mỗi từ. Sau đó, tôi muốn thực hiện free() cho một từ cụ thể,
Tôi có một char*: char* version = "10.5.108"; Tôi muốn nhận hai char* mới bằng dấu phân cách ký tự. char delimiter = '.'; Sau khi thực thi đoạn mã sau: printf("|
Gần đây tôi đang học Cpp và có điều gì đó kỳ lạ đã xảy ra khi tôi học cách sử dụng Clion để thử nghiệm ngày hôm nay. Đây là mã của tôi int main() { char c = 'b';
Tôi mới làm quen với c và tôi đang xem lại một số mã. Tôi đã xem qua điều này: static char * fromDataType; static char * toDataType; static char * fromR;
Tôi có một cấu trúc động như thế này: struct network { int count; char** ips } Nếu tôi biết rằng mỗi mảng chuỗi là 16 byte (tức là INET_ADDRSTR
Tôi có một chương trình cũ sử dụng một số chức năng thư viện nhưng tôi không có thư viện đó. Vì vậy tôi đang viết chương trình này bằng thư viện C++. Trong mã cũ đó có một số hàm được gọi như thế này *string = newstrdup("Đây là một số từ");
Tôi đang viết một hàm lấy một ArrayList rồi sao chép từng char[] sang một char[] khác có độ dài tăng dần rồi thêm char[] mới vào ArrayList mới. Khi tôi cố gắng sao chép mảng
Tôi đang tìm bản đồ > và tạo mọi bản đồ có thể có từ nó. Tôi biết việc này có thể sử dụng nhiều bộ nhớ và mất chút thời gian. Mỗi bản đồ cần chứa từng chữ cái az và ánh xạ tới một ký tự az duy nhất. tức là. Ah bjcp di EVfh ga trứng đỏ máu
#define NAME_LEN 20 #include "stdio.h" #include "stdlib.h" #include "string.h" #pragma Warning(disab
Vì vậy tôi phải tạo một hàm tìm cặp có chữ cái đầu tiên và trả về chữ cái thứ hai. Tôi thực sự đã tìm thấy câu trả lời nhưng không thể tìm thấy nó bằng chức năng bản đồ. tra cứu :: Char -> [(Char, Cha
Gần đây tôi đã được phỏng vấn và được yêu cầu viết mystrcat(*s1, *s2, *s3) trong đó s1 và s2 là các chuỗi nguồn và kết quả nối được đưa ra bởi s3. Tôi được yêu cầu đừng lo lắng về việc cấp phát bộ nhớ cho s3 và cho rằng s1 và s2 không phải là các từ rỗng/không hợp lệ
Hôm nay tôi đang thảo luận với một đồng nghiệp về chữ ký chức năng "chính" bất thường của anh ấy (đối với tôi). Anh ấy thích khai báo nó như thế này: int main(int argc, char* (*argv)[]) { printf("at index
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 12 năm trước. Có thể trùng lặp: Sự khác biệt giữa char mới [10] và cha mới là gì
Thông thường các chuỗi ký tự có kiểu const char[]. Nhưng khi tôi coi nó là loại khác, tôi nhận được kết quả lạ. unsigned char *a = "\355\1\23"; Sử dụng trình biên dịch này sẽ đưa ra cảnh báo "Con trỏ khi khởi tạo
Tôi là một lập trình viên xuất sắc, rất giỏi!