crtIsValidHeapPointer에러 질문좀하겠습니다.
동은
질문 제목 : 질문 내용 : 포인터쪽부터 다시 공부중인데;
int main(){
char *string[10]={null};
char **ch=string;
int stringn=0;
int size;
int i;
int size1;printf_s(몇번 반복해서 입력을 받으시겠습니까?\n);
scanf_s(%d,&size,sizeof(int));
printf_s(최대메모리는 얼만큼으로 잡으시겠습니까?\n);
scanf_s(%d,&size1,sizeof(int));
*ch=(char*)malloc(sizeof(char)*size1);
string[size];
for(i=0; isize; i++){
printf_s(%d의 내용을 입력해주십시오.\n,i+1);
scanf(%s,&string[i]);
}
//printf(!asd);
for(i=0; isize; i++){
printf_s(입력된 문자열은 %s입니다\n,&ch[i]);
}
free(*ch);
return 0;
}
코드는 이런데 free부분에서 에러가 나더군요. 충돌이라고 하는데... 무슨 말인지 이해가 안가서 글을 올립니다.
염치없지만, 왜그런지 이게 또 무슨 에러인지 자세하게 설명해주셨으면합니다.... ㅠ
-
비마중
free에서 에러나는 경우의 99%는 free전에 메모리 할당 공간을 벗어나서 데이터를 쓴 경우입니다.
할당 범위 이상 사용한 부분이 없는지 체크를 해보심이 좋을 것 같습니다. -
무들
스캔프부분은 저도 확실하게는 모릅니다만 배열은 주소나다름없잔습니까 그렇지만 경유에따라서 주소를표기를해야 돌아가는 경우가 있더라구요. 이코드에서는 빼면 안돌아가더군요. 평소 입력받을때 배열이나 포인터면 미리실행하고 코딩을 해서요.