를 사용하는 동안 내가 여기 무슨 일이 일어나고 있는지 모르는 :분할 오류 포인터
#include<stdio.h>
int main()
{
int i, j, *k, x,array[]={5,3,4,1,8,9,2,7,6,0};
int *ptr=array;
for(j=1;j<10;j++) {
printf("---------iteration %d--------------\n",j);
*k=*(ptr+j); // the segmentation error is occurring here at this line
printf("key=%d\n",*k);
i=j-1;
while(i>=0 && *k < *(ptr+i)) {
*(ptr+i+1)=*(ptr+i);
i--;
}
*(ptr+i+1) = *k;
printf("%d\n",*(ptr+i+1));
for(x=0;x<10;x++)
printf("%d,",*(ptr+x));
printf("\n");
}
for(i=0;i<10;i++)
printf("%d,",*ptr++);
printf("\n");
}
를 오류는 for
루프에서 printf
문 직후에 발생하는 때 나는 두 측면에서 *
를 제거 그것은 작동하지만 대답은 틀립니다.
*k=*(ptr+j)
내가 오른쪽을보고로까지하지 않았다 :
이 당신이 말한대로 종류 바로 printf()
후, C.
오신 것을 환영합니다 스택 오버플로. 당신이 그렇게 외쳤다면, 여기에 게시 된 코드에서'void main()'을 사용하지 마십시오. 제발, 제발, 레벨 당 4 칸 (탭 없음)으로 들여 쓰기를하십시오. –
그 점에 대해 사과드립니다. 나에게 기사를 보내 주시겠습니까? 아니면 코드를 작성하는 동안 서식 지정 규칙을 말해 주시겠습니까? – hunterr986
또한 __ (2 점 아래)와 '_in'및 '_t'로 끝나는 변수 및 구조와 함수 이름을 몇 가지 발견했습니다! 나에게 설명해 주시겠습니까? – hunterr986