приведение к указателю из целого числа разного размера [-Wint-to-pointer-cast] - PullRequest
0 голосов
/ 05 февраля 2012

Ну, мне нужно возродить вопрос, на который здесь уже давали ответ. Я сделал некоторые изменения по другим причинам, и теперь у меня снова проблема. Вот соответствующие детали:

volatile char RxBuffer1[NEMA_BUFFER_LENGTH];
uint32_t NEMA_TypeStart;
char NEMA_Type[10];
uint32_t len;
...

memcpy(NEMA_Type,(const char*)RxBuffer1[NEMA_TypeStart], len);

С помощью команды я получаю ошибку, показанную в строке темы. Без актерского состава я получаю:

передача аргумента 2 из memcpy делает указатель из целого числа без литые

Обратите внимание, что то же самое происходит, если я использую strncpy. Так что я в тупике. Я думал, что понял, что memcpy использует void *. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Это было какое-то время, но я думаю, что вы должны сказать это вместо ...

memcpy(NEMA_Type, &RxBuffer1[NEMA_TypeStart], len);

Вы также можете сказать ...

memcpy(NEMA_Type, RxBuffer1 + NEMA_TypeStart, len);
1 голос
/ 05 февраля 2012

Вам нужно передать адреса на memcpy.Я бы предположил, что вы хотите:

memcpy(NEMA_Type,(const char*) &RxBuffer1[NEMA_TypeStart], len);
...