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

c - fclose miễn phí gấp đôi hoặc bị hỏng (ra)

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 04:01:34 30 4
mua khóa gpt4 Nike

*** Đã phát hiện glibc *** /home/ghoshs/workspace/Simulator/Debug/Simulator: trống gấp đôi hoặc bị hỏng (ra): 0x00000000017e6030 ***
======= Quay lại: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7e626)[0x7f34b8553626]
/lib/x86_64-linux-gnu/libc.so.6(fclose+0x155)[0x7f34b85432a5]
/home/ghoshs/workspace/Simulator/Debug/Simulator[0x40e7bf]
/home/ghoshs/workspace/Simulator/Debug/Simulator[0x40e94a]
/home/ghoshs/workspace/Simulator/Debug/Simulator[0x40e357]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f34b84f676d]
/home/ghoshs/workspace/Simulator/Debug/Simulator[0x405e19]
======= Bản đồ bộ nhớ: ========
00400000-0128c000 r-xp 00000000 08:06 1576650 /home/ghoshs/workspace/Simulator/Debug/Simulator
0148b000-0148c000 r-xp 00e8b000 08:06 1576650 /home/ghoshs/workspace/Simulator/Debug/Simulator
0148c000-014bd000 rwxp 00e8c000 08:06 1576650 /home/ghoshs/workspace/Simulator/Debug/Simulator
014bd000-014c7000 rwxp 00000000 00:00 0
017e6000-01807000 rwxp 00000000 00:00 0 [đống]
7f34b84d5000-7f34b8688000 r-xp 00000000 08:06 4849816 /lib/x86_64-linux-gnu/libc-2.15.so
7f34b8688000-7f34b8887000 ---p 001b3000 08:06 4849816 /lib/x86_64-linux-gnu/libc-2.15.so
7f34b8887000-7f34b888b000 r-xp 001b2000 08:06 4849816 /lib/x86_64-linux-gnu/libc-2.15.so
7f34b888b000-7f34b888d000 rwxp 001b6000 08:06 4849816 /lib/x86_64-linux-gnu/libc-2.15.so
7f34b888d000-7f34b8892000 rwxp 00000000 00:00 0
7f34b8892000-7f34b88a7000 r-xp 00000000 08:06 4853364 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f34b88a7000-7f34b8aa6000 ---p 00015000 08:06 4853364 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f34b8aa6000-7f34b8aa7000 r-xp 00014000 08:06 4853364 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f34b8aa7000-7f34b8aa8000 rwxp 00015000 08:06 4853364 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f34b8aa8000-7f34b8ac0000 r-xp 00000000 08:06 4855760 /lib/x86_64-linux-gnu/libpthread-2.15.so
7f34b8ac0000-7f34b8cbf000 ---p 00018000 08:06 4855760 /lib/x86_64-linux-gnu/libpthread-2.15.so
7f34b8cbf000-7f34b8cc0000 r-xp 00017000 08:06 4855760 /lib/x86_64-linux-gnu/libpthread-2.15.so
7f34b8cc0000-7f34b8cc1000 rwxp 00018000 08:06 4855760 /lib/x86_64-linux-gnu/libpthread-2.15.so
7f34b8cc1000-7f34b8cc5000 rwxp 00000000 00:00 0
7f34b8cc5000-7f34b8dbe000 r-xp 00000000 08:06 4849815 /lib/x86_64-linux-gnu/libm-2.15.so
7f34b8dbe000-7f34b8fbd000 ---p 000f9000 08:06 4849815 /lib/x86_64-linux-gnu/libm-2.15.so
7f34b8fbd000-7f34b8fbe000 r-xp 000f8000 08:06 4849815 /lib/x86_64-linux-gnu/libm-2.15.so
7f34b8fbe000-7f34b8fbf000 rwxp 000f9000 08:06 4849815 /lib/x86_64-linux-gnu/libm-2.15.so
7f34b8fbf000-7f34b8fe1000 r-xp 00000000 08:06 4849818 /lib/x86_64-linux-gnu/ld-2.15.so
7f34b91bd000-7f34b91c1000 rwxp 00000000 00:00 0
7f34b91dd000-7f34b91e1000 rwxp 00000000 00:00 0
7f34b91e1000-7f34b91e2000 r-xp 00022000 08:06 4849818 /lib/x86_64-linux-gnu/ld-2.15.so
7f34b91e2000-7f34b91e4000 rwxp 00023000 08:06 4849818 /lib/x86_64-linux-gnu/ld-2.15.so
7fffc3f01000-7fffc3fab000 rwxp 00000000 00:00 0 [ngăn xếp]
7fffc3fff000-7fffc4000000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

Tôi đang làm một việc đơn giảnFILE* temp_dataset = fopen(dataset_filnames,"w");Sau một vài thao tác ghi, tôi đã đóng nó bằng một phương pháp đơn giảnfclose(temp_dataset);Tại thời điểm này tôi nhận được một lỗi tham nhũng miễn phí gấp đôi. Trong hàm, tôi chỉ tạo hai số ngẫu nhiên sẽ đóng vai trò là nguồn và đích và thuật toán sẽ tiếp tục sử dụng chúng để tìm tuyến đường trên biểu đồ. Nhưng phần đó hoàn toàn độc lập với phần mã này. (Xin lỗi, Stack Overflow không cho phép tôi đăng câu hỏi về thông tin không liên quan.)

void generate_dataset(int number_of_src_dest,
char tập dữ liệu_filnames[],NI* network_info, int k, int network_set,int tập dữ liệu_num)
{
int i,j;

printf("Đang tạo tập dữ liệu cho bộ mạng...\n");
sprintf(dataset_filnames,"src_dest_pair_#nodes_%d_#SDP_%d_NS_%d_DS_%d",NUMBER_OF_NODES,number_of_src_dest,network_set,dataset_num);
printf("trong file.. %s\n",dataset_filnames);
int temp_topo[NUMBER_OF_NODES][NUMBER_OF_NODES];
copy_2D_array(NUMBER_OF_NODES,NUMBER_OF_NODES,temp_topo,network_info->cấu trúc liên kết);
FILE* temp_dataset = fopen(dataset_filnames,"w");
int number_of_source_destination_generated = 0;
int source_destination[_BIG_SIZE][2];
cho (i = 0; tôi < NUMBER_OF_NODES; ++i)
{
vì (j = 0; j < NUMBER_OF_NODES; ++j)
{

nếu (tôi != j)
{
int đường đi ngắn nhất[NUMBER_OF_NODES];
int dist = đường dẫn ngắn nhất(i,j,temp_topo,đường dẫn ngắn nhất);
đường dẫn int[K][NUMBER_OF_NODES];
khởi tạo_two_d_array(K,NUMBER_OF_NODES,paths,-1);
if(dist>=percentage_of(PERCENTAGE_LOWER_LIMIT,compute_optical_reach()) &&
dist<=percentage_of(PERCENTAGE_UPPER_LIMIT,compute_optical_reach()))
{
int path_generated = k_shortest_path(i,j,K,
đường dẫn,temp_topo,compute_optical_reach());
if(paths_generated>=K)
{
nguồn_destination[number_of_source_destination_generated][0] = i;
nguồn_destination[number_of_source_destination_generated][1] = j;
số_of_source_destination_generated++;
}


}
}
}
}
if(number_of_source_destination_generated>=NUMBER_OF_SOURCE_DESTINATION)
{
int đã truy cập_demand[number_of_source_destination_generated];
khởi tạo_one_d_array(number_of_source_destination_generated,visited_demand,0);

cho (i = 0; tôi < NUMBER_OF_SOURCE_DESTINATION; ++i)
{
int next_demand = Random_in_range(0,number_of_source_destination_generated);
while(visited_demand[next_demand])
next_demand = Random_in_range(0,number_of_source_destination_generated);
đã truy cập_demand[next_demand] = 1;
fprintf(temp_dataset,"%d\t%d\n",source_destination[next_demand][0],source_destination[next_demand][1]);
}
}

khác
{
printf("Số cặp nguồn-đích được tạo: %d\n",number_of_source_destination_generated);
printf("Không thể tạo đủ số cặp SD theo yêu cầu\nĐang thoát...");
exit(1);
}


printf("Số cặp nguồn-đích được tạo: %d\n",number_of_source_destination_generated);
printf("Giải phóng bộ nhớ và xóa tất cả bộ đệm...\n");
fclose(temp_dataset);
printf("Hoàn tất việc tạo tập dữ liệu.\n");
}

Tôi nhận ra rằng khi tôi mở tập tin,NI kiểu(struct)của thông tin mạng Dữ liệu trong bị hỏng. mạng Cấu trúc có một mảng hai chiều đại diện cho mạng. Sau khi mở file tôi thấy các giá trị rác được đưa vào mảng. thông tin mạng kích thước sử dụng (NI*) malloc(sizeof(NI*)) Thực hiện khởi tạo.

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

Theo kinh nghiệm của tôi, lỗi trống kép hoặc lỗi hỏng thường là triệu chứng của các sự cố xảy ra trước đó trong mã. Tôi nhận thấy bạn có đoạn mã sau:

    int number_of_source_destination_generated = 0;
int source_destination[NUMBER_OF_SOURCE_DESTINATION][2];

Trong một vòng lặp:

nguồn_destination[number_of_source_destination_generated][0] = i;
nguồn_destination[number_of_source_destination_generated][1] = j;
số_of_source_destination_generated++;

Làm cách nào để đảm bảo rằng số_of_source_destination_được tạo luôn nhỏ hơn NUMBER_OF_SOURCE_DESTINATION? Đặc biệt là sau bạn:

if(number_of_source_destination_generated>=NUMBER_OF_SOURCE_DESTINATION)
{

Đây là trường hợp không có lỗi nào được tạo ra. Điều này khiến tôi tin rằng các biến chữ thường phải lớn hơn các biến chữ hoa. Vì vậy, tôi tin rằng điều này có nghĩa là bạn đang ghi vào bộ nhớ không được phân bổ cho mảng bạn muốn. Điều này có thể gây ra vấn đề sau này và có thể là điều bạn muốn hỏi. Việc triển khai của tôi không phải lúc nào cũng nhắc tôi nếu tôi thực hiện việc này, vì vậy nếu cách triển khai của bạn tương tự, bạn không thể dựa vào trình biên dịch để phát hiện những lỗi này.

Tôi vẫn còn khá thiếu kinh nghiệm, vì vậy hãy tin tưởng lời khuyên này (bạn luôn nên làm như vậy).

EDIT: Tôi vừa nhấp vào "Hiển thị thêm nhận xét" và sự cố đã được giải quyết. Vì vậy, không có gì mới ở đây.

Về c - double free hoặc bị hỏng(out)fclose, 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/11065722/

30 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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