- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
[编辑]
好的,这是有道理的,谢谢 sharptooth 和 CashCow。您不能删除分配为 const 的数据,这使得字符串文字成为不可能。因此,如果我将初始化更改为如下所示:
char **groups = new char*[2];
char *s1 = new char[10];
char *s2 = new char[10];
char c1 = 'a';
char c2 = 'b';
for(int i = 0; i < 9; i++)
{
s1[i] = c1;
s2[i] = c2;
}
s1[9] = NULL;
s2[9] = NULL;
groups[0] = s1;
groups[1] = s2;
对我的 for 循环进行硬编码,使其只遍历 i=1 和 i=2,然后一切正常。
Tôi đã nhận thấy int arraySize = sizeof arr/sizeof *arr;
似乎只有在使用 new[] 而不是本地分配数组时才有效。这是因为我原来的 char ** groups;
变量衰减为指针,对吗?
现在我想知道,有没有办法判断数据是否为常量?
[原创]
Tôi biếtarrays and pointers are evil ,还有称为 vector 和链表的伟大事物。
但是,我是内存管理方面的新手,感觉有点自虐。假设我制作了一个 C 字符串数组。我从this question知道以及您必须将 type a = new type[len];
Và delete[] a;
匹配的 FAQ-Lite。或者我认为。
FAQ-Lite 讨论管理锯齿状数组 đây ,但他专注于矩阵,我不确定它是否适用于我正在做的事情。
此代码对我来说有意义,但在 delete[] a;
上的断言(在 Visual Studio 2008 上调试)失败。这有什么问题,我该如何完成这项任务?
#include
sử dụng không gian tên std;
int main(int argc, char* argv[])
{
// Initialize array of C-strings
char *groups[] = {"testing1", "testing2"};
// Sanity check
cout << groups[0] << endl;
cout << groups[1] << endl;
// Compute size
int arrsize = sizeof groups / sizeof groups[0];
cout << arrsize << endl;
for (int i = 0; i < arrsize; i++)
{
// Since each string is a char array, free string memory with delete[]
cout << "Deleting element #" << i << endl;
delete[] groups[i];
}
cout << "Freeing pointer array." << endl;
// Free the memory storing the pointers
delete[] groups;
trả về 0;
}
1 Câu trả lời
您尝试解除分配字符串文字 - 这是未定义的行为:
char *groups[] = {"testing1", "testing2"};
delete[] groups[i];
仅对 new[]
返回的指针调用 delete[]
.
关于C++删除c字符串数组/其他类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4302467/
Cách sử dụng SPListCollection.Add(String, String, String, String, Int32, String, SPListTemplate.QuickLaunchO
Tôi mới bắt đầu sử dụng C++ và có một số kinh nghiệm với C#, vì vậy tôi có một số kinh nghiệm lập trình chung. Tuy nhiên, có vẻ như tôi đã bị bắn hạ ngay lập tức. Tôi đã thử tìm kiếm trên Google để không lãng phí thời gian của mọi người, nhưng vô ích. int main(int argc,
Câu hỏi này đã có câu trả lời: Trong Java 8, làm thế nào để chuyển đổi một Bản đồ thành một Bản đồ khác bằng lambda? (8 câu trả lời) Chuyển đổi Bản đồ>
Tôi đang sử dụng node + typescript với swagger tích hợp cho các lệnh gọi API. Tôi Swagger thực hiện yêu cầu sau tới http://localhost:3033/employees/sear
Tôi mới làm quen với mẫu container C++. Tôi đã thu thập được một số hồ sơ. Mỗi bản ghi có một tên duy nhất và danh sách các cặp trường/giá trị. Các bản ghi sẽ được truy cập theo tên. Thứ tự của cặp trường/giá trị rất quan trọng. Vì vậy, tôi thiết kế nó như sau: typedef string
Tôi cần hai phương pháp này nhưng j2me không có, tôi tìm thấy một replaceall(); nhưng đây là replaceall(string,string,string); Phương pháp thứ hai là SringBuffer nhưng trong j2me nó không có
Nếu string là bí danh của String trong .net framework thì tại sao điều này lại xảy ra và tôi nên diễn giải nó như thế nào: type JustAString = string
Tôi có hai danh sách (hoặc chuỗi): một danh sách lớn, một danh sách nhỏ. Tôi muốn kiểm tra xem phần lớn hơn (A) có chứa phần nhỏ hơn (B) không. Kỳ vọng của tôi như sau: Trường hợp 1. B là tập con của A A = [1,2,3] B = [1,2] chứa(A
Tôi có một vấn đề nhỏ mà có vẻ như tôi không thể giải quyết được. Ở đây... Tôi có một đầu vào được tạo như thế này... var input = $(''); Nếu tôi làm thế này... mọi thứ đều ổn $(this).append(input); Nếu tôi
Tôi có đoạn mã sau string[] lines = objects.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.No
Có lẽ điều này thực sự đơn giản nhưng tôi đã bối rối một thời gian rồi. Tôi đang cố gắng xuất ra một chuỗi rồi một số double với hai chữ số thập phân theo sau là một chuỗi khác, đây là mã của tôi. System.out.printf("Chi phí:%.2
Đây là một trong những ví dụ từ danh sách truy vấn Cloud Firestore citiesRef.where("state", ">=", "CA").where("state", "= string, chúng ta đang ở trong Stack Overflow
Tôi đang cố kiểm tra xem một chuỗi có nằm trong một chuỗi khác hay không. Mã phía sau khá đơn giản. Tôi có thể làm điều này trong jquery như thế nào? hàm deleteRow(locName, locID) { nếu
Câu hỏi này đã có câu trả lời tại đây: Cách triển khai big int trong C++ (14 câu trả lời) Đã đóng 9 năm trước. Tôi có 2 chuỗi, cả hai đều chỉ chứa số. Những con số này lớn hơn uint64_t
Tôi có một ánh xạ Dozer với một bộ chuyển đổi tùy chỉnh: com.xyz.Customer com.xyz.CustomerDAO customerName
Câu hỏi này đã có câu trả lời tại đây: Làm thế nào để so sánh các chuỗi trong Java? (23 câu trả lời) Đã đóng 6 năm trước. Tôi muốn hiểu cách hoạt động của nhóm chuỗi và quy tắc để một chuỗi bằng với một chuỗi khác là gì
Tôi đã đọc câu hỏi này và một số câu hỏi khác. Nhưng chúng có phần không liên quan đến câu hỏi của tôi. Đối với UILabel nếu bạn không chỉ định ? hoặc ! bạn sẽ nhận được lỗi như thế này: Thuộc tính @IBOutlet không có tùy chọn
Về mặt lý thuyết, phương pháp nào trong hai phương pháp này nhanh hơn và tại sao? (Con trỏ tới chuỗi phải là hằng số.) Sự khác biệt chính xác giữa destination[count] và *destination++ là gì? đích đến[co
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 11 năm trước. Có thể trùng lặp: Is String.Format a
Tôi có một Stream của một tệp, bây giờ tôi muốn nhóm các từ giống nhau vào một Map. Điều quan trọng là tần suất xuất hiện của từ trong Stream. Tôi biết tôi phải sử dụng collect(Collectors.groupingBy(..)
Tôi là một lập trình viên xuất sắc, rất giỏi!