const void *의 데이터 크기에 관한 질문이 있습니다. 아래 코드에서 첫 번째 printf의 출력은 6이고 두 번째 printf의 출력은 3입니다. 문제가 발생한 부분을 찾을 수 없습니다. 사전글자 크기 및 const void *
#define TEST "\x00\x01\x02\x03\x04\x05"
#include <stdio.h>
static void function(const void* c);
int main (void) {
printf("TEST: %d\n",sizeof(TEST) -1);
function(TEST);
return 0;
}
static void function(const void* c) {
printf("TEST: %d\n",sizeof(c) -1);
}
나는 strlen (c)로 시도하지만 크기는 0이된다. 좀 더 자세한 정보를 제공해 주시겠습니까? 고맙습니다! – user3821117
@ user3821117 : 문자열은 null 문자로 시작하므로 길이가 0 인 것으로 보입니다. 유효한 C 스타일 문자열이 아니기 때문에 길이를 찾을 방법이 없습니다. –