Runtime Error:[ERROR] A Not allowed system call

    xiaoxiao2023-03-24  5

    写OJ用CB用惯了,突然用VS写最后不会有按任意键退出。所以加了一句System("pause");

    交到GCC上就报这个错

    // AAA.cpp : 定义控制台应用程序的入口点。 // #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <memory.h> #define ERROR 0 #define OK 1 #define FALSE 0 #define TRUE 1 #define LISTSIZE 100 #define LISTINCREMENT 50 typedef int status; typedef struct { int* elem; int count; int size; }sqlist; status Initlist(sqlist &l) { l.count = 0; l.size = LISTSIZE; l.elem = (int*)malloc(LISTSIZE * sizeof(int)); if (!l.elem) return ERROR; return OK; } status Deletelist(sqlist &l) { memset(&l, 0, sizeof(l)); return OK; } status Insertlist(sqlist &l, int n, int x) { if (n > l.size)return ERROR; if (l.count == l.size) { l.elem = (int*)realloc(l.elem,( l.size + LISTINCREMENT)*sizeof(int)); l.size += LISTINCREMENT; } if (!l.elem)return ERROR; if (n <= l.count) { for (int i = n; i<l.count; i++) l.elem[n + 1] = l.elem[n]; l.elem[n] = x; } else l.elem[n] = x; l.count++; return OK; } status List_intersection(sqlist l1, sqlist l2, sqlist &l3) { int flag = 0; for (int i = 0, j = 0;;) { if (i == l1.count || j == l2.count) break; if (l1.elem[i]>l2.elem[j]) j++; else if (l1.elem[i]<l2.elem[j]) i++; else if (l1.elem[i] == l2.elem[j]) { if (flag == 0) { printf("%d", l1.elem[i]); flag++; } else printf(" %d", l1.elem[i]); Insertlist(l3, l3.count, l1.elem[i]); //l3.count++; i++; j++; } } return OK; } status List_union(sqlist l1, sqlist l2) { int flag = 0,flag1=0,k=l1.count+l2.count,i=0,j=0; for (;;) { if (l1.elem[i]>l2.elem[j]) { if (flag == 0) { printf("%d", l2.elem[j]); flag++; } else printf(" %d", l2.elem[j]); if (j != l2.count ) j++; } else if (l1.elem[i]<l2.elem[j]) { if (flag == 0) { printf("%d",l1.elem[i]); flag++; } else printf(" %d", l1.elem[i]); if (i != l1.count ) i++; } else if (l1.elem[i] == l2.elem[j]) { k--; if (flag == 0) { printf("%d", l1.elem[i]); flag++; } else printf(" %d", l1.elem[i]); if (i != l1.count ) i++; if (j != l2.count ) j++; } k--; if (i == l1.count || j == l2.count ) break; } if (k > 0) { if (j==l2.count) for (; k > 0; k--)    printf(" %d", l1.elem[i++]); else if (i==l1.count) printf(" %d", l2.elem[j++]); } return OK; } status List_difference(sqlist l1, sqlist l3) { int flag = 0; for (int i = 0, j = 0;;) { if (l1.elem[i] == l3.elem[j]) { i++; if (j != l3.count - 1) j++; } else if (l1.elem[i]>l3.elem[j]) { if (flag == 0) { printf("%d", l1.elem[i]); flag++; } else printf(" %d", l1.elem[i]); //Insertlist(l5, l5.count, l1.elem[i]); if (j != l3.count - 1) j++; i++; } else if (l1.elem[i]<l3.elem[j]) { if (flag == 0) { printf("%d", l1.elem[i]); flag++; } else printf(" %d", l1.elem[i]); //Insertlist(l5, l5.count, l1.elem[i]); i++; } if (i == l1.count) break; } return OK; } void List_show(sqlist l) { for (int i = 0; i<l.count; i++) { if (i == 0) printf("%d", l.elem[i]); else printf(" %d", l.elem[i]); } } int main() { int i, j, m, n, temp; sqlist l1, l2, l3; scanf("%d", &m); for (i = 1; i <= m; i++) { Initlist(l1); Initlist(l2); Initlist(l3); scanf("%d", &n); for (j = 0; j<n; j++) { scanf("%d", &temp); Insertlist(l1, j, temp); } scanf("%d", &n); for (j = 0; j<n; j++) { scanf("%d", &temp); Insertlist(l2, j, temp); } printf("Case #%d:\n", i); List_intersection(l1, l2, l3); //List_show(l3); printf("\n"); List_union(l1, l2); //List_show(l4); printf("\n"); List_difference(l1, l3); //List_show(l5); printf("\n"); List_difference(l2, l3); // printf("\n"); //List_show(l5); // Deletelist(l1); //Deletelist(l2); //Deletelist(l3); } //Deletelist(l1); //Deletelist(l2); //Deletelist(l3); system("pause"); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1201968.html
    最新回复(0)