我需要将一个指向字符数组的指针发送到我的函数之一。为了生成这个char*,我在我的一个c文件中使用这个函数
charPtr = myProj.strAll ( 8 );
strAll在哪里:
^{pr2}$然后我将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
有人知道发生了什么吗?在
ABCD1234
有8个个字符。但是您还应该为终止字符\0
提供一个额外的字节。每个C字符串都应该以\0
结尾。在{/cd4}字符的最后一个位置应该在哪个位置结束。在
我不知道为什么你只分配5个位置,在那里你试图复制一个长度为8个字符的字符串。在
^{pr2}$相关问题 更多 >
编程相关推荐