10 * 10 배열을 잡고 싶습니다,
글쓴이: lkjt / 작성시간: 일, 2004/05/02 - 1:47오전
#include <stdio.h> #include <malloc.h> int main() { char **a; // 10 * 10 *a = (char **)malloc(sizeof(char *) * 10); int i,j; for(i=0;i<10;i++) { a[i] = (char *)malloc(sizeof(char) * 10) } for(i=0;i<10;i++) { for(j=0;j<10;j++) { a[i][j] = i * 10 + j; } } for(i=0;i<10;i++) { for(j=0;j<10;j++) { printf("%d ",a[i][j]); } printf("\n"); } printf("EXIT\n"); return 0; }
malloc 으로 해보려니 잘 모르겠군요,
어떻게 해야 하나요? :evil:
Forums:
[code:1] char **a; // 10 * 10
선언을 먼저 끝내야죠.. 플그램은 어쨌든 돌아갈 것으로 보이구요..
글구
a[i][j] = i * 10 + j;
여기서 제 생각으로는 a[i][j]에게 할당된 크기는 sizeof(char) 즉, 1byte 입니다.
문제내에서는 별 문제가 없겠지만 정수형 값을 대입하기에는 오버플로우의
위험이 따릅니다. 정수형 값을 다루어야 하는 플그램일 경우
이런식으루 바꾸어야 하지 않을까요? 짐 작업가능한 서버에 접속이 안되서.. (학겨 네트웍 문제 ㅡ.ㅜ)
나중에 확인해 보구 정정사항 있으면 올리겠습니다. ^^;
---------------------------------------
세계는 넓고, 할일은 많다.
음..[code:1]*a = (char **)mallo
음..
*a = (char **)malloc(sizeof(char *) * 10);
이게 아니고..
a = (char **)malloc(sizeof(char *) * 10);
이게 아닐지..
헛.. 내가 착각하는 건가.. 그렇다고 확인해 보기는 귀차니즘이니 패스..
ㅡ_ㅡ;
헛.. 맞습니다. 아까 깜빡하고 언급을 안했네요.. *a에 할당된 메
헛.. 맞습니다. 아까 깜빡하고 언급을 안했네요..
*a에 할당된 메모리의 어드레스를 담으면 안되죠 ~
a가 맞습니다.
---------------------------------------
세계는 넓고, 할일은 많다.
그렇군요?,,,그것만 때문인가요?
그렇군요?,,,
그것만 때문인가요?
음..제가 알기론 개정된 C표준에서(C99)중간에서 선언을
음..
제가 알기론 개정된 C표준에서(C99)
중간에서 선언을 해도 된걸로 허용이 된걸로 알고있는데
아닌가요?
C++, 그리고 C++....
죽어도 C++
네ㅡ 중간에서 선언해도 됩니다,
네ㅡ 중간에서 선언해도 됩니다,
댓글 달기