2차원 배열로 문자열을 초기화하려는데요
char a[5][6]={" 1열"," 2열"," 3열"," 4열"," 5열"};
이렇게 쓰니 오류가 안나고 잘 되었는데요 이부분이!
근데 a[5][5]로 했을 때는 오류가 났거든요!
문자열 입력들어가는 것이 띄어쓰기(1바이트)+숫자(1바이트)+한글한글자(2바이트)+마지막널값?들어가는(1바이트)=총5바이트 니까
음 뒤에 배열 크기에 5가 들어가면 되는 거 아닌가요? ㅠㅠ 왜 6이 들어가야 오류가 안나나요?
부탁드려요 ㅠㅠㅠㅠㅠㅠ
\"1열\" \"2열\" \"3열\" \"4열 \"5열\" 이렇게 각각 인덱스 하나식 차지하고 마지막에 null이 추가로 차지함
그래서 6개 필요
음 만약에 안에 입력해주는 문자열 갯수가 11개에요 안에 들어가는 바이트 수는 같고! 그때 a[11][6]으로 됐거든요 여기서 옆에 크기 11이 들어가는 총 문자 갯수를 의미하고 뒤에 크기가 그 한 문자열 안에 들어가는 크기가 되는거 아닌가요 ?ㅠㅠ
아마 \"\" 안의 바이트값은 주소에 영향주지 인덱스 자리를 더먹거나 하지는 않을걸
여기서 그 6이라는 크기안에 이미 null 값인 1바이트?를 하나 계산해서 5바이트인건데 나머지 1칸? 1바이트는 어디서 써묵은건지..
어렵네요ㅠㅠ 그 안에 문자열 바이트 수와 6이라는 그 배열크기하고는 상관이 없는건가요?_?
앞에것이 행 뒤에것이 열임
그러니까 [5][6]은 6칸의 배열을 5줄만드는거니까 되는데
[5][5]는 5칸의 배열을 5줄 만들라는거니까 에러가 나겠지
반대로 알고있나본데?
저..돌머리인가봄ㅠㅠ 위에 11개 입력 넣을 때 경우에는요???
[11][6] 으로 되었으니까 앞에꺼가 입력받는 행...즉 초기화되는 문자열의 수로서 인식이되공.. 뒤에 6이라는 크기가 6바이트가 되니까 한칸에 한바이트씩 띄어쓰기가 한칸 잡아묵고 숫자가 한칸잡아묵고 글자가 두칸잡아묵고 널값이 한칸잡아묵는게 아닌지ㅠ
귀찮으신데 답변달아주셔서 감사합니당... 해결은 나지 않았지만 ㅠㅠㅠㅠㅠㅠㅠ
[11][6]이 됌? 내가 반대로 기억하고있나 헐ㅋㅋ
네ㅎㅎㅎ 사실은 지금 11열까지 11개 입력 넣고 있구 질문에는 너무 길게 쓰기 뭐해서 5개로 줄여올린거거든요! 한자리수 열에는 띄어쓰기가 있지만 11열은 숫자가 두개라 띄어쓰기를 안넣어서 거기에서 1칸더 잡아준거다 라고 생각할수도 없는거고 힝...~_~
아 머야 11열에 각각 1행값만 넣은거?? 그거면 되지 ㅋㅋ
char a[11][6]={\" 1열\",\" 2열\",\" 3열\",\" 4열\",\" 5열\"....\"11열\"}; 요거 말하는거???
맨앞 갯수가 바깥쪽 배열 갯수, 뒤는 문자열길이
이거같은 경우는 각각의 행의 1열값에 값 하나씩 넣어준거니깐 되지
열을 쭉 배열하려면 {\"1열, 2열..... 11열\"}처럼 괄호안에 다 넣어줘야지
네에네에??? char a[11][6]={\" 1열\",\" 2열\",\" 3열\",\" 4열\",\" 5열\",\" 6열\",\" 7열\",\" 8열\",\" 9열\",\"10열\",\"11열\"}; 이상태에요 원래.. 된거라구요? 어찌된걸까요? ㅠㅠㅠㅠㅠ 6의 정체가 궁금하다ㅠㅠㅠㅠㅠ 왜 5는 안되고 6부터 되는가
예를 들어줄게 int a[3][2]이라는 배열이 있다치면 2칸짜리 배열을 3줄 놓을 수 있다는 거야 그런데
님처럼 \"{\"1\",\"2\",\"3\"} 이렇게 넣으면 \"1\"이라는 배열이 첫째줄 \"2\"가 둘째줄 \"3\" 셋째줄 이렇게 한칸씩 들어간단거지
네에네에 ㅎㅎㅎ 그거는 이해하고 있는데 이제 문자형변수라서.. 2차원 배열을 쓰게된거거든요... 쓰게된이유가.. char형에 1열 2열 이런거처럼 글자랑 숫자포함을 넣어주려니 1차원으로는 하나에 1바이트 밖에 안들어가니까.. 2차원배열을 사용해본건데...ㅠㅠ