void AAA(int d[][number]) <- 에서 함수가 number는 무슨 자료형인지 몰라서 안되는건가요
익명(175.126)2022-12-30 15:12
답글
이차원 배열의 경우 저 소스 기준 number의 값에 따라 인덱스 별로 액세스해야하는 상대주소가 달라지는데 이 상대주소는 고정값으로 들어감. 변수가 들어가면 고정값이 안됨ㅇㅅㅇ
프갤로(gotopg)2022-12-30 15:17
답글
What you are trying to do is not possible because memory for global variables are calculated at compile time and the value of number is updated at runtime 이라는데 요것도 맞나요 ?
익명(175.126)2022-12-30 15:19
답글
틀린말은 아닌데 직접적인 답은 아닌듯ㅇㅅㅇ number가 무슨 자료형인지 모른다기보단 int[][number] 의 자료형을 모른다는 게 맞을듯ㅇㅅㅇ
프갤로(gotopg)2022-12-30 15:24
답글
감사함니다
익명(175.126)2022-12-30 15:27
저런건 거의다 만들어지는 순서차이
익명(222.102)2022-12-30 15:18
내가 알기론 define으로 정의된 상수만 됨 ㅇㅅㅇ const int는 되려나? 함 해보셈
Python(dlcjsdltlq)2022-12-30 15:23
답글
const형으로 상수값이 되지 않으면 못들어가네요 ㄱㅅ
익명(175.126)2022-12-30 15:24
답글
저런 정적 이차원 배열은 실제로 컴파일러가 1차원 배열로 바꿔서 다루기 때문에 반드시 사전에 길이가 정의돼있어야함
Python(dlcjsdltlq)2022-12-30 15:26
답글
const형이 아니면 뭐 길이가 바뀔 가능성이 있으니 그냥 차단해버리는 느낌인가보네요
익명(175.126)2022-12-30 15:27
답글
ㅇㅇ맞음
Python(dlcjsdltlq)2022-12-30 15:28
배열이란 컴파일러가 배열의 크기를 추측할 필요 없이 명확하게 나타나내여야한다 즉 배열을 정할 때 그 크기는 언제나 컴파일 시간에 확정 되어 있어야 한다라고 잘찾아보면 책같은데 적혀있을을듯
define은 전처리 단계에서 소스코드레벨로 바꿔줌ㅇㅅㅇ
음.. 쉽게 이해가 안가네여
define은 number 대신 4 쓰는거랑 똑같음ㅇㅅㅇ
아아
그래서 되는구나 근데 전역변수는 왜 안되는지 궁금함
void AAA(int d[][number]) <- 에서 함수가 number는 무슨 자료형인지 몰라서 안되는건가요
이차원 배열의 경우 저 소스 기준 number의 값에 따라 인덱스 별로 액세스해야하는 상대주소가 달라지는데 이 상대주소는 고정값으로 들어감. 변수가 들어가면 고정값이 안됨ㅇㅅㅇ
What you are trying to do is not possible because memory for global variables are calculated at compile time and the value of number is updated at runtime 이라는데 요것도 맞나요 ?
틀린말은 아닌데 직접적인 답은 아닌듯ㅇㅅㅇ number가 무슨 자료형인지 모른다기보단 int[][number] 의 자료형을 모른다는 게 맞을듯ㅇㅅㅇ
감사함니다
저런건 거의다 만들어지는 순서차이
내가 알기론 define으로 정의된 상수만 됨 ㅇㅅㅇ const int는 되려나? 함 해보셈
const형으로 상수값이 되지 않으면 못들어가네요 ㄱㅅ
저런 정적 이차원 배열은 실제로 컴파일러가 1차원 배열로 바꿔서 다루기 때문에 반드시 사전에 길이가 정의돼있어야함
const형이 아니면 뭐 길이가 바뀔 가능성이 있으니 그냥 차단해버리는 느낌인가보네요
ㅇㅇ맞음
배열이란 컴파일러가 배열의 크기를 추측할 필요 없이 명확하게 나타나내여야한다 즉 배열을 정할 때 그 크기는 언제나 컴파일 시간에 확정 되어 있어야 한다라고 잘찾아보면 책같은데 적혀있을을듯
추론해보자면 define은 컴파일 시간이나 이전에 확정되었고 변수는 그렇지않다는 의미
저건 변수라 명확하지 않아서 안되는군요
ㅇㅇ