Мне нужно отправить указатель на массив символов для одной из моих функций. Чтобы создать этот символ *, я использую эту функцию в одном из моих c-файлов, который называется вот так
charPtr = myProj.strAll ( 8 );
где strAll:
char * strAll ( int size ) {
return malloc( sizeof( char ) * size );
}
Затем я передаю charPtr в функцию, подобную этой:
myProj.Populate ( char* dataIn, char* dataOut, maxLen );
Заполняет копирует dataIn в dataOut, используя maxLen в качестве ограничения размера. Он использует memcpy для копирования через что-то вроде этого:
memcpy ( dataOut, dataIn, maxLen);
Использование:
myProj.Populate ( "ABCD1234", charPtr, 8 ); //maxLen is the # of bytes I've allocated for charPtr.
Однако, когда я скажу python распечатать charPtr, он напечатает только ABC.
Ожидаемый:
>>charPtr
'ABCD1234'
>>print charPTr
ABCD1234
Фактический:
>>charPtr
'ABC'
>>print charPTr
ABC
Кто-нибудь знает, что происходит?