Представленный вами код в вопросе не имеет смысла. Если вы хотите
получить адрес указателя на первый элемент массива и скопировать все элементы в новый буфер
, тогда вы можете просто написать
memcpy( myBuffer, Array, 100 * sizeof( *Array ) );
Вот демонстрационная программа
#include <stdio.h>
#include <string.h>
#include <stdint.h>
int main(void)
{
enum { N = 10 };
uint8_t Array[N] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
uint8_t myBuffer[N];
memcpy( myBuffer, Array, N * sizeof( *Array ) );
for ( size_t i = 0; i < N; i++ )
{
putchar( myBuffer[i] );
}
putchar( '\n' );
return 0;
}
Вывод программы:
ABCDEFGHIJ
Если по какой-то причине вам нужно использовать промежуточный указатель, тогда код может выглядеть примерно так:
#include <stdio.h>
#include <string.h>
#include <stdint.h>
void getValues( uint8_t **pvalues, uint8_t Array[] )
{
*pvalues = Array;
}
int main(void)
{
enum { N = 10 };
uint8_t Array[N] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
uint8_t myBuffer[N];
uint8_t *pmyValues;
getValues( &pmyValues, Array );
memcpy( myBuffer, pmyValues, N * sizeof( *pmyValues ) );
for ( size_t i = 0; i < N; i++ )
{
putchar( myBuffer[i] );
}
putchar( '\n' );
return 0;
}