#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0;
int h=0;
int j=0;
int *arr,*copyarr;
int a;
arr=(int*)malloc( sizeof(int) * (5+3*h) );
for(i=0;;i++){
if(i>5)
{
h++;
copyarr=arr;
arr=(int*)malloc( sizeof(int) * (5+3*h) );
arr=copyarr;
}
printf(\"number?(-1 to exit):\");
scanf(\"%d\",&arr[i]);
if(arr[i]==-1)
break;
}
for(j=0;j<i;j++)
printf(\"%d,\",arr[j]);
free(arr);
return 0;
}
컴파일 했더니만 입력이 5개가 초과된후에 -1로 탈출을 하니
after normal block 이라는 메세지까 뜨네요..
검색해보니 메모리 영역을 벗어난곳에 접근을 했다나..
잘은모르겠지만 저기 free를 주석처리하면 잘컴파일 되네요...
어떤게 잘못된건가요..ㅠㅠ
먼소쓰야 이건
정수입력받는건데요~ 5개이상 입력받으면 5개부터 배열을 3칸씩 늘려서 8칸으로 만들고 8개이상입력받으면 또 3칸씩 늘려서 계속 받아내는건데.. 잘안되네요ㅠ
저작자에게잘못이있어보이네요
소스가 엉망이다.. 이건 사용자 오류인거같음 -_-
아....ㅠㅠ
동적할당을 ㅄ같이 한것같긴한데... 아...
정말 도와드리고 싶은데.. 소스 분석하는데만도 시간이 걸릴듯 싶어요..
아.. 동적할당 배우긴 했는데 응용이 안되네요...;;
arr 기껏 할당해놓고 뭐하는 짓임..
동적할당, 포인터, 다시배우셔야 할듯 ;ㅁ;.. 머 너무 엉망이라 ㅠ. 머 어찌 도와드려야 할지 ;ㅁ;..