Я пытаюсь создать функцию C, которая будет возвращать int, но в процессе заполнит символ *, переданный в качестве переменной. Основной пример того, что я пытаюсь сделать, это:
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");
}
В main.c:
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-систему. Я, наверное, упускаю что-то чрезвычайно фундаментальное!