0

我正在集成一个新系统,而旧系统在方法中有一个 char*。现在有一个 UTF8CHAR * 代替。

我有一个字符串对象:

string data("test set");

并想将其传递给函数:

my_method(UTF8CHAR* text, ENUM extra, newStruct &item);

我的第一次尝试是:

newStruct param("hi", 0,0);
my_method(data.c_str(), extra::OPEN,param);

我没有收到错误,而是收到 EXC_BAD_ACCESS

4

1 回答 1

1

Astring和一个char数组每个都包含一个字节序列。这取决于所讨论的库,但常识表明UTF8CHAR数组也是字节序列,另外理解某些字节组合描述某些 unicode 代码点,而某些其他字节组合是非法的。所以每个 utf8 char 数组都是一个 char 数组,但不一定反过来。由于区别不是编译器可以检查的,除了确保正确的数据类型处理之外,传递 char 指针应该可以工作。如果没有,可能是其他地方出了问题,我们无法根据您发布的代码来判断。

于 2012-12-13T19:22:25.573 回答