#include <stdio.h>
int main(void)
{
int a, b,c, i, j;
printf("행과 열을 정해주십쇼 :");
scanf("%d %d", &a, &b);
printf("몇의 배수로 입력할지 정해주십쇼");
scanf("%d", &c);
int arr[a][b] = {0}; // <<< -**!!이부분 이렇게 설정하면 안되던데 왜 안되는지 궁금해요 ㅠㅠ
for (i = 0; i < a; i++)
{
for (j = 0; j < b; j++)
{
arr[i][j] = 3 * (j + 1);
printf("%d", arr[i][j]);
}
printf("\n");
}
}
scanf로 받은 a,b를 2차원배열 설정할대 a,b로 넣어서 설정했는데 왜 안되는지 모르겠어용
왜 안되용? ㅠㅠㅠ
해당 댓글은 삭제되었습니다.
감사합니다 ㅠㅠ
동적할당 왜함? 궁금해서 그럼 배열 동적할당 하면 어케됨? 포인터 도 아닌데 동적할당됨? 순수하게 궁금해서 질문하는거 알아놓게
아.. 근데 예는 지금 2차원 배열 전부 0으로 초기화 하려는거같은데 {0,} 이거 c에서 안됨?
내가 지금 c cpp 구분이안된다 뭐가 c 고 뭐가 cpp인지 c 안한지 넘오랴됨 ㅋㅋㅋ
아 미안 내가 븅신이었다 ㅋㅋㅋ 그러네 ㅋㅋㅋㅋㅋㅋ 지금봄
arr배열에서 a랑 b가 정적인 값이라서 그렇게 어떤 값 입력하면 arr 배열의 메모리 바꾸려면 calloc나 malloc 쓰세요 0 초기화 하실꺼면 calloc 쓰면 될듯
감사합니다 공부좀더 하고오겠습니다!
malloc나 calloc같이 이미 할당 된 공간을 동적으로 또 바꾸고 싶다면 realloc 참고해보세요
아니면 free하고 다시 malloc나 calloc하시면 됨
동적할당 나오는 이유 설명좀.. 순수한 학문 을 갈구하는 차유ㅓㄴ에서 질문하는거
그냥 님처럼 입력한 값에 따라 컴파일에서 원하는 메모리 빌려오게 하고 싶어서 하는 거임.. 정적인 거는 이미 메모리를 정적으로 이만큼 가져오고 싶다는 거고
내가 븅신처럼 잘못봄 ㅋㅋ
윗분이 말하는 건 컴파일이 정적인거 런타임이 동적으로 관리된다고 했는데, 요즘엔 컴파일러에서 동적인 처리도 해주는듯? 그러니까 내부적으로는 동적으로 메모리 생성하겠지
new 아니면 malloc 공부하셈 - dc App
감사합니다! 공부하고오겠습니다
기억이 가물가물 한데 0, 이렇게 하면 나머지 자동 0 초기화 되던거 같은데 c에선 안되나 스캔f 도 , 넣어야하는거아닌가