- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
// Processes the array, starting from the second element
int j, k;
char *doubled;
for (j = 1; j < 500; j++) {
strcpy(doubled, output[j]);
strcat(doubled, doubled);
for (k = 0; k < j; k++) {
if (strcmp(output[k], output[j]) == 0) {
output[j] = doubled;
}
if (strcmp(output[k], doubled) == 0) {
output[j] = '\0';
}
}
}
尝试处理一个字符串数组,每当一个特定字符串出现两次时,第二次出现就会打印该字符串的重复项(例如dogdog --->dogdogdog),并且如果a出现两次以上字符串,删除该字符串(例如dogdogdog--->dogdogdog)。
我尝试调试,发现问题出在这段代码中,我不断收到段错误报告。
我需要做什么来解决这个问题?我已经研究了 strcat() 创建段错误的几种解决方案,但似乎没有一个真正有效。
1 Câu trả lời
编辑:根据注释,如果原始 cstrings 数组没有为每个字符串分配足够的内存,那么最好的解决方案可能是构造另一个空数组,每个字符串分配的内存是两倍,然后将旧数组复制到新的空的如下:
int count = 500;
int temp_size = 0;
char** new_array = malloc(count * sizeof(char*));
for(int i = 0; i < count; i++) {
temp_size = strlen(output[i]);
new_array[i] = malloc(((temp_size * 2) + 2) * sizeof(char)));
strcpy(new_array[i], output[i]);
}
Dynamically create an array of strings with malloc
通过在for循环内声明变量可以避免很多麻烦,然后它们的生命周期和作用域就被限制在for循环内。就您而言,我认为这有效(请参阅评论和编辑):
int size = 0;
for (j = 1; j < count; j++) {
size = strlen(output[j]); //get the size of output[j]
char doubled[(size * 2) + 1]; //make cstring twice size + space for '\0'
strcpy(doubled, output[j]); //put one copy in the temporary buffer
strcat(doubled, output[j]); //concatenate next copy like this
for (k = 0; k < j; k++) {
if (strcmp(output[k], output[j]) == 0) {
strcpy(new_array[j], doubled); //make changes to new_array
}
if (strcmp(new_array[k], doubled) == 0) {
char deleted[1] = "\0"; //needed for free to work
strcpy(new_array[j], deleted); //otherwise runtime error
}
}
}
Declaring variables inside loops, good practice or bad practice?
Hoàn thànhnew_array
后,它也需要被删除:
for (int i = 0; i < count, i++) {
free(new_array[i]);
}
free(new_array);
new_array = NULL;
关于c - C 中 strcat() 的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58652441/
Tôi đã sử dụng vue-cli trong hai tuần và mọi thứ đều hoạt động tốt cho đến hôm nay. Tôi xây dựng dự án này tại địa phương. https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
Xin chào, tôi đang cố gắng trích xuất văn bản từ hình ảnh bằng thư viện python pytesseract. Vui lòng tìm mã: từ PIL nhập Image từ pytesseract nhập image_
Lỗi của tôi /usr/bin/ld: errno: Định nghĩa TLS trong phần /lib/libc.so.6 .tbss không khớp với tham chiếu không phải TLS
Tôi đã đào tạo một mô hình và đang cố gắng sử dụng hàm dự đoán nhưng nó trả về lỗi sau. Lỗi trong độ tương phản<-(*tmp*, giá trị = contr.funs[1 + isOF[nn]])
Dựa trên thông tin từ Microsoft DataConnectors, tôi muốn tạo một trình kết nối từ PowerBi tới PostgreSQL bằng truy vấn trực tiếp thông qua trình điều khiển ODBC này. Tôi đã sử dụng lại Micros
Tôi đã tạo một gói cho SoundManagement, có một lớp mở rộng MediaPlayer. Tôi muốn kiểm soát biến này trên toàn cục. Đây là mã của tôi: package soundmanagement; impo
Tôi có một ứng dụng được triển khai trên Heroku. Tôi đang sử dụng dịch vụ miễn phí. Tôi thường xuyên nhận được thông báo lỗi sau. PG::Error: LỖI: hết bộ nhớ Nếu bạn làm mới trình duyệt, mọi chuyện sẽ ổn. Nhưng rồi, nó lại xảy ra ngẫu nhiên lần nữa
Tôi đang chạy máy chủ LAMP và file .htaccess này đang báo lỗi 500. Chức năng của nó là lọc các từ khóa và chuyển hướng chúng đến các tên miền tương ứng. Tùy chọn +FollowSymLinks RewriteEngine
Tôi có hai ổ đĩa A và B. Sử dụng một tập lệnh python, tôi tạo một số tệp trong ổ đĩa "A" và chạy một tập lệnh powerscript để sao chép tất cả các tệp trong ổ đĩa A sang ổ đĩa B sau mỗi 1 giây. Tôi có sức mạnh
Hàm bên dưới liên tục trả về thông báo lỗi này. Tôi nghĩ có thể kiểu trường double_precision đã gây ra vấn đề này, tôi đã thử sử dụng CAST nhưng có lẽ không phải vậy hoặc tôi đã làm không đúng... Trợ giúp? Đây là lỗi: ERROR: i
Câu hỏi này đã có câu trả lời: Lỗi cú pháp do sử dụng từ dành riêng làm tên bảng hoặc tên cột trong MySQL (1 câu trả lời) Đã đóng
Tôi có một vấn đề nhỏ với cơ sở dữ liệu của mình. Tôi đã tạo một bảng "articoli" chứa thông tin về thương hiệu, mẫu mã và giá của các mặt hàng. Mỗi bài viết được xác định bởi một id (ID_ARTICOLO)`, đây là trường tự động tăng. Được rồi, bây giờ khi tôi thử chèn
Tôi mới ở đây. Hiện tại tôi đang học Lập trình C++ trung cấp trực tuyến tại DeVry. Chúng tôi đang sử dụng cuốn sách C++ Primer Plus và cho đến nay tôi thấy khá hiệu quả. Gần đây giáo viên của tôi đã ném cho chúng tôi một quả bóng cong. Nhiệm vụ hiện tại của tôi là:
Câu hỏi này đã có câu trả lời tại đây: Lỗi tham chiếu không xác định/ký hiệu bên ngoài chưa được giải quyết là gì và làm thế nào để khắc phục?
Tôi gặp vấn đề với một đoạn mã trên trang web của mình; lỗi này chỉ xảy ra trên Internet Explorer 7. Thay vì đăng tất cả các đánh dấu HTML/CSS của tôi ở đây, tôi sẽ đăng một phiên bản của trang web ở đây. Như bạn có thể thấy, tôi đã
Tôi đang gặp một số vấn đề khi sử dụng npm trên Raspberry Pi khi cố gắng xây dựng ứng dụng node.js trên thiết bị USB. package.json trông như thế này: { "name" : "node-todo",
Trong Python, bạn có None singleton, hoạt động kỳ lạ trong một số trường hợp: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (chủ yếu
Đây là tệp build.gradle (Module:app) của tôi: apply plugin: 'com.android.application' android { compileSdkV
Tôi mới làm quen với Android và dự án của tôi vừa mới biên dịch và chạy tốt nhưng sau khi tôi thử triển khai điều hướng ngăn kéo thì nó báo lỗi này: FAILURE: Build failed with an exception. Tôi nên làm gì?
Có ai có thể giải thích được điều này không? Tôi nghĩ tôi đang làm điều gì đó thực sự ngu ngốc và đang háo hức chờ đợi sự khai sáng. Tôi nhận được kết quả này: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
Tôi là một lập trình viên xuất sắc, rất giỏi!