사이즈 정보를 알아보는 방법문의
푸헷
2023.04.01
배열이나 malloc으로생성된 공간의 사이즈 정보 알아보는 방법문의질문 내용 : 제가 특정 사이즈 정보를 보내지 않고 리턴하는 방법을 알수 없을까요?
//호출하는 하는쪽
void main(){
byte arr[10];
calculate(arr);
}
//원형
void calculate(byte *parr){
int len = 0;
len = sizeof(parr); // 4byte
len = sizeof(*parr);//1byte
}
이와 같이 sizeof로는 사이즈를 알수 없어서 다른 방법은 없나요?
사이즈 정보를던져주어야 하는건가요?
-
해지개
배열은 인자로 넘길 때.. 주소값만 넘어가니까 항상 사이즈와 함께 다녀야 한다고 배웠습니다..
void calculate(byte pArr[100]){ // 이렇게 해도 에러는 안나고..
int len = 0;
len = sizeof(pArr); // 4byte // 여전히 같은 값이 나와버린 다는...
len = sizeof(*pArr);//1byte
} -
소년틳터프
^^ 방법이 없군요 살짝 넘겨주어야 하는 군요 ㄳ
-
햇햇
main 함수의 입장에서는
sizeof(arr) / sizeof(byte)로 10을 구할수 있습니다.
그러나
calculate 함수 입장에서는 크기를 알 수 없게 됩니다.
사이즈 정보를 던져주면 못 받을지 모르니까 그냥 살짝 넘겨주시길 바랍니다.