int를 반환하는 C 함수를 만들려고하지만 프로세스에서 변수로 전달 된 char *을 채 웁니다. 내가 노력하고 무엇의 기본적인 예는 다음과 같습니다 main.c의에서C에서 함수에 전달 된 char *에 텍스트가 채워지는 방법은 무엇입니까?
int myMethod(int input, char* output, int outMaxLen) {
int outValue = input * 5;
if (out < 10) strcat(output, "A small number");
else if (out < 20) strcat(output, "A medium number");
else strcat(output, "A large number");
}
:
실행char* myMethodOutput;
int myMethodInt = myMethod(2, myMethodOutput, 15);
printf("%d %s", myMethodInt, myMethodOutput);
화면의 정수를 표시하지만, 텍스트를하지 않습니다.
outMaxLen 변수는 char * 매개 변수가 출력 문자열을 수용 할만큼 충분히 큰지 확인하기위한 것입니다.
또한 strcat()뿐만 아니라 strcpy() 및 strncpy()도 사용하지 않았습니다. strcat()는 콘솔에 텍스트를 표시하지 않고 strcpy() 및 strncpy()는 EXC_BAD_ACCESS 메시지와 함께 디버거를 호출합니다.
Windows API에서 strcpy_s 함수를 사용하여 성공적으로 관리했으나 이제는 UNIX 상자에서 시도하고 있습니다. 나는 아마 매우 근본적인 무언가를 놓치고있다!
이 코드에서 이름을 수정해야합니다. 나갔어? 너는 외계인이야? –
아무 것도 반환하지 않는 것 같습니다. –
분할 오류가 발생하지 않습니까? –