Приведение указателя из символа в C - PullRequest
1 голос
/ 29 ноября 2009

Если у меня есть функция, которая возвращает (char) в c, и у меня есть (char* getSomething), как мне ее разыграть? Это дает мне ошибку, когда я пытаюсь привести его через (char*) или (char*)&

Пример: Если функция:

char* getSomething;
getSomething = getSth(var);

getSth возвращает символ

Ответы [ 2 ]

3 голосов
/ 29 ноября 2009

Вы не можете сохранить значение в указателе. Указатель указывает на адрес памяти, в котором хранятся данные, поэтому сначала необходимо сохранить возвращенный символ в ячейке памяти (символьная переменная или область, выделенная malloc), на которую затем можно указать getSomething.

char *getSomething;
char something;

something = getSth(var);
getSomething = &something;

Или вы можете напрямую получить доступ к ячейке памяти с помощью указателя

char something;
char *getSomething = &something;

*getSomething = getSth(var);

Наконец, вы можете использовать malloc для возврата области памяти, на которую указывает точка, а затем сохранить возвращенное значение в этой области памяти. Просто убедитесь, что вы освободили эту память до выхода из функции.

char *getSomething = malloc(sizeof(char));

*getSomething = getSth(var);

free(getSomething);
0 голосов
/ 29 ноября 2009
*getSomething = getSth(var);

По сути, это говорит: "положите символ, где getSomething указывает на ..."

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