<div>아래의 예제를 실행하면 free(a);부분에서 자꾸 에러가 나네요.</div> <div>그리고 a배열값도 전부 0밖에 나오지 않고</div> <div>책에 있는 예제를 calloc함수가 void* 포인트를 리턴해서 int포인터 변수a에 대입할 수 없어서 int*로 형변환 해서 대입한 것을 제외하면 그대로 입력한건데 아무래도 뭔가 예제의 어느 부분이 잘못된거 같은데</div> <div>아무리 봐도 예제의 어느부분이 잘못되있는지 모르겠네요,</div> <div>아시는 분 답변 주셨으면 정말 좋겠네요.</div> <div>#include <stdio.h></div> <div>#include <stdlib.h></div> <div>#include <time.h></div> <div><br></div> <div>void fill_array(int *a,int n);</div> <div>int sum_array(int *a,int n);</div> <div>void wrt_array(int *a,int n);</div> <div><br></div> <div>int main (void)</div> <div><br></div> <div>{</div> <div>int *a,n;</div> <div>srand (time(NULL));</div> <div>printf("\n%s\n","This program does the following repeatedly:\n",</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>"\n"</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>"1 creates space for an array of size n \n"</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>"2 fills the array with randomly distributed digits\n"</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>"3 prints the array and the sum of its element\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(;;){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("Input n: ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(scanf("%d",&n)!=1||n<1)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>putchar('\n');</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>a=(int *)calloc(n,sizeof(int));/*allocate space for a[]*/</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill_array(a,n);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>wrt_array(a,n);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("Sum=%d\n\n",sum_array(a,n));</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>free(a);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("\nBye!\n\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div>}</div> <div>void fill_array(int *a,int n)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0;i<n;++i);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>a[i]=rand()%19-9;</div> <div>}</div> <div>int sum_array(int *a,int n)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i,sum=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0;i<n;++i)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>sum+=a[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return sum;</div> <div>}</div> <div>void wrt_array(int *a,int n)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("a=[");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0;i<n;++i)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("%d%s",a[i],((i<n-1)?",":"]\n"));</div> <div>}</div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.