Выделите CFString в подфункции - PullRequest
1 голос
/ 25 апреля 2011

Я хочу выделить место для CFString в подфункции.Примерно так:

void fun(CFStringRef *ref)
{
    ref = CFStringCreateWithCString(NULL, "hi", kCFStringEncodingUTF8);
}

int main(void)
{
    CFStringRef ref;
    fun(&ref);

    CFShow(ref);

    if(ref) CFRelease(ref);
    return 0;
}

Он компилируется с предупреждением и не печатает "привет".Что здесь не так?

РЕДАКТИРОВАТЬ: добавлено CFRelease ()

1 Ответ

5 голосов
/ 25 апреля 2011

CFStringCreateWithCString() возвращает CFStringRef, а не CFStringRef *.Вы должны разыменовать указатель в назначении:

*ref = CFStringCreateWithCString(NULL, "hi", kCFStringEncodingUTF8);

Редактировать: для вашего следующего вопроса, пожалуйста, не просто говорите «он компилируется с предупреждением».Сообщите нам фактическое предупреждающее сообщение.Это делает ответ на ваш вопрос намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...