XHAENEUNG RTE (SIGSEGV: segmentation fault, probably incorrect memory access or stack overflow)발생이요ㅠ nomo4473 아래의 코드를 제출했을때 RTE (SIGSEGV: segmentation fault, probably incorrect memory access or stack overflow)오류가 발생을 하는데요.... 이런식으로 질문을 올리면 안되는거 같긴하지만 아무리 해도 원인을 못찾겠어서 도움을 좀 부탁드립니다ㅠ #include <stdio.h> #include <string.h> #include <stdlib.h> int GetIsPass(char* strFirstIndex,char cOperation,char* strSecondIndex,char* strResult) { int i,j,k; char* strNumber[11] = {"zero","one","two","three","four","five","six","seven","eight","nine","ten"}; int nNumber[11] = {0,1,2,3,4,5,6,7,8,9,10}; int nFirstIndex = -1; int nSecondIndex = -1; int nResult = -1; int nResultLength = -1; char temp; for(i = 0;i < sizeof(strNumber)/4;i++) { if(strstr(strFirstIndex,strNumber[i])!=NULL) { nFirstIndex = i; } if(strstr(strSecondIndex,strNumber[i])!=NULL) { nSecondIndex = i; } } if(cOperation == '+') { nResult = nFirstIndex + nSecondIndex; }else if(cOperation == '*') { nResult = nFirstIndex * nSecondIndex; }else { nResult = nFirstIndex - nSecondIndex; } if(nResult<0 || nResult>10) return 0; if(strlen(strNumber[nResult])!=strlen(strResult)) return 0; nResultLength = strlen(strNumber[nResult]); for(i = 0;i<nResultLength;i++) { for(j=0;j<nResultLength;j++) { if(strNumber[nResult][i]==strResult[j]) { temp = strResult[j]; strResult[j] = strResult[i]; strResult[i] = temp; } } } if(strcmp(strNumber[nResult],strResult)==0) return 1; else return 0; } int main() { int i = -1; char cOperation; char strFirstIndex[6]; char strSecondIndex[6]; char strResult[11]; int nTestCase = -1; int* nResult; int test = sizeof(strFirstIndex); memset(strFirstIndex,0,sizeof(strFirstIndex)); memset(strSecondIndex,0,sizeof(strSecondIndex)); memset(strResult,0,sizeof(strResult)); scanf("%d",&nTestCase); nResult = (int*)malloc(sizeof(int)*nTestCase); for(i = 0;i<nTestCase;i++) { scanf("%s %c %s = %s",strFirstIndex,&cOperation,strSecondIndex,strResult); nResult[i] = GetIsPass(strFirstIndex,cOperation,strSecondIndex,strResult); } for(i = 0;i<nTestCase;i++) { if(nResult[i]) { printf("Yes"); }else { printf("No"); } } free(nResult); return 0; } 9년 전
1개의 댓글이 있습니다. newcomet sizeof(strNumber)/4 값이 얼마가 나오나 확인해 보세요. 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
nomo4473
아래의 코드를 제출했을때
RTE (SIGSEGV: segmentation fault, probably incorrect memory access or stack overflow)오류가 발생을 하는데요....
이런식으로 질문을 올리면 안되는거 같긴하지만 아무리 해도 원인을 못찾겠어서 도움을 좀 부탁드립니다ㅠ
9년 전