>  기사  >  백엔드 개발  >  함수 매개변수로 전달된 C 배열의 크기를 어떻게 확인할 수 있나요?

함수 매개변수로 전달된 C 배열의 크기를 어떻게 확인할 수 있나요?

DDD
DDD원래의
2024-11-24 08:17:10565검색

How Can I Determine the Size of a C   Array Passed as a Function Parameter?

C 함수 매개변수에서 배열 크기 결정

C에서 배열은 함수 매개변수로 전달될 때 암시적으로 포인터로 변환됩니다. 이는 크기 정보가 손실되고 함수 내에서 배열 크기에 직접 액세스할 수 없음을 의미합니다.

코드 조각에서:

void makeVectorData(float p_vertData[]) {   
 int num = (sizeof(p_vertData)/sizeof(int)); 
}

sizeof(p_vertData)는 크기를 검색합니다. 배열 자체가 아니라 배열에 대한 포인터입니다. 포인터에는 32비트(32비트 시스템에서)가 필요하므로 배열의 실제 크기에 관계없이 num은 1과 같습니다.

해결책:

배열의 크기에 액세스하려면 크기를 나타내는 별도의 매개변수를 전달할 수 있습니다.

void makeVectorData(float p_vertData[], int size) {   
 int num = size; 
}

호출자의 경우 배열의 크기를 인수로 지정합니다.

makeVectorData(verts, sizeof(verts) / sizeof(float));

위 내용은 함수 매개변수로 전달된 C 배열의 크기를 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.