char a[40][40][10];
이렇게 해서
파일불러와서요
토큰분리해서 저장했습니다
a[0][0]에 name들어가있구 a[0][1]에 number 들어가있고 이런식입니다.
이렇게 토큰분리해서 저장해서
출력해보면
for(i=0;i<50;i++)
printf("%s ",a[0][i]);
이렇게 해서 보면 처음에 인덱스를 40까지 해놓고 50까지 출력한다고 하면 에러가 나야할텐데
a[0][39]까지 출력된다음에 a[0][40]값으로 a[1][0]값이 나옵니다.
왜그런지 알수있을까요?
이렇게 해서
파일불러와서요
토큰분리해서 저장했습니다
a[0][0]에 name들어가있구 a[0][1]에 number 들어가있고 이런식입니다.
이렇게 토큰분리해서 저장해서
출력해보면
for(i=0;i<50;i++)
printf("%s ",a[0][i]);
이렇게 해서 보면 처음에 인덱스를 40까지 해놓고 50까지 출력한다고 하면 에러가 나야할텐데
a[0][39]까지 출력된다음에 a[0][40]값으로 a[1][0]값이 나옵니다.
왜그런지 알수있을까요?
배열이 메모리에 잡힐때 그렇게 될수있도록 생겨먹은거 + c가 배열 경계체크 안하는거..
라고 하면 모르겠지?-_-ㅋ
3차원 배열로 만들어도... 실제 메모리에는 연속해서 들어가거든;
예를들어 2차원 배열을 선언하면 논리적으로는 매트릭스인데 메모리상에서는 1차원 배열이야
고마워 횽들아~~ 이해했어~~