라고 할 때 저 Size는 define으로 정의하든데 전역변수로 바꾸면 Size에서 에러가 나버림
왜 이런거예요??
댓글 7
이게 뭔 헛소리야 gcc에서 에러가 안난다니
??(1.228)2015-04-18 18:41
VC++든 gcc든 g++든 저건 에러가 나는 게 맞다. 배열의 크기를 변수로 줄 경우 초기화는 못하게 되어 있다 이기야
ㅅㅅㅅ(125.128)2015-04-18 18:45
정히 제로 초기화를 하고 싶으면 memset() 함수로 초기화시키도록.
ㅅㅅㅅ(125.128)2015-04-18 18:46
혹은 그냥 저런 확장 표준 문법 안 쓰고 calloc()을 써도 0으로 초기화해주지. C 메모리 할당 함수가 malloc과 calloc으로 나뉜 이유는 이름만 봐도 알 수 있다. malloc = Memory Allocation (스칼라 타입을 위한 메모리 할당), calloc = Continuous Memory Allocation (연속 메모리(배열) 할당). 그래서 calloc은 원소 크기와 원소 개수를 입력 받는 거고 0으로 자동 초기화해주는 거임.
이게 뭔 헛소리야 gcc에서 에러가 안난다니
VC++든 gcc든 g++든 저건 에러가 나는 게 맞다. 배열의 크기를 변수로 줄 경우 초기화는 못하게 되어 있다 이기야
정히 제로 초기화를 하고 싶으면 memset() 함수로 초기화시키도록.
혹은 그냥 저런 확장 표준 문법 안 쓰고 calloc()을 써도 0으로 초기화해주지. C 메모리 할당 함수가 malloc과 calloc으로 나뉜 이유는 이름만 봐도 알 수 있다. malloc = Memory Allocation (스칼라 타입을 위한 메모리 할당), calloc = Continuous Memory Allocation (연속 메모리(배열) 할당). 그래서 calloc은 원소 크기와 원소 개수를 입력 받는 거고 0으로 자동 초기화해주는 거임.
아 오타. Continuous가 아니라 Contiguous임.
아 저렇게 하면 선언은 되는데, 선언과 동시에 초기화는 안되는구나
잘못된 댓글이었으므로 지웠슴니당