Приведение указателей к целым - PullRequest
1 голос
/ 15 апреля 2011

В моем исходном файле есть номер xmlChar *, и мне нужно, чтобы они были в целочисленной форме.

Как правильно разыграть их?

Когда я попробовал это world->representation = malloc(sizeof(int *) * mapHeight); он говорит

error: invalid operands to binary * (have ‘long unsigned int’ and ‘xmlChar *’)

и когда я попробовал это

world->representation = malloc(sizeof(int *) * (int) mapHeight);

Я получил эту ошибку

Неопределенные символы для архитектуры x86_64: "_main", ссылка с: начать в crt1.10.6.o "_commandfetcher", на который ссылаются: _commandFetcher в ccPv5Pvd.o ld: символы не найдены для архитектуры x86_64

Как я могу привести указатель xmlChar к int? например, xmlChar имеет значение 30, мне нужно это в виде int.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Вы не можете просто привести char к int.(Или, скорее, вы можете, но он не делает то, что вы думаете.)

Используйте strtol, чтобы преобразовать строку в целое число:

char* number = "30";
int value = strtol(number, NULL, 0);
0 голосов
/ 15 апреля 2011

Вы не хотите приводить указатель - вы хотите разыменовать его.

Но в этом случае вы, вероятно, захотите преобразовать строку в целое число?

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