memset
에 정적으로 할당 된 문자 배열을 시도 할 때 segfault가 발생하지만 malloc
을 사용하여 할당 된 동일한 길이의 배열에는 그렇지 않습니다.정적으로 할당 된 char 배열에 대한 C - memset segfault
변수 정의 :
//static
char inBuff[IN_BUFF_LEN];
//dynamic
char * inBuffD;
함수 호출 : 함수 내
이//static, cast used because char** != char (*) [n]
serverInit(portNum, (char**) &inBuff, &serv_addr, &sockfd)
//dynamic
serverInit(portNum, &inBuffD, &serv_addr, &sockfd)
사용 :
memset(*inBuffAdr, 0, IN_BUFF_LEN);
나는 나의 문제는 함수 호출의 차이에 있음을 의심 또는 더 정확하게, "char **! = char (*) [n]"상황에 대한 나의 불완전한 이해. 그러나 나는 이것에 너무 오래 동안 부딪 치고 나무에서 숲을 볼 수 없다 그래서 어떤 힌트 및 통고든지 아주 평가 될 것입니다.
'inBuffAdr' 란 무엇이며 어떻게 설정합니까? – NPE
다른 곳에서 사용되는 구조 일 뿐이며 현재의 질문에는 중요하지 않습니다. 하지만 만약 당신이 정말로 내가 당신에게 몇 가지 세부 사항을 줄 수 있다는 것을 알고 싶다면 – Zodd