c++ - 如何在 C++ 中为 char * array[] 赋值

标签 c++

我想将字符串分配给字符数组

这是代码-

char *resultArray[100];
int cnt = 0;
void MySAX2Handler::startElement(const XMLCh* const uri, const XMLCh* const localname,
                                 const XMLCh* const qname, const Attributes& attrs)
{
   char* message = XMLString::transcode(localname);
   resultArray[cnt] = message;
   cnt++;

   for (int idx = 0; idx < attrs.getLength(); idx++)
   {
      char* attrName = XMLString::transcode(attrs.getLocalName(idx));
      char* attrValue = XMLString::transcode(attrs.getValue(idx));
      resultArray[cnt] = attrName;
      cnt++;
      resultArray[cnt] = attrValue;
      cnt++;
   }
   XMLString::release(&message);
}

在遍历 resultArray 之后,它打印了一些垃圾值

最佳答案

attrNameattrValue 都是指针,而 char 是整数类型,所以赋值运算符将简单地复制指针的值(地址),而不是内容。

循环遍历字符串或使用某些版本的 strcpy(),或者确实是 C++ 字符串库之一。

关于c++ - 如何在 C++ 中为 char * array[] 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768460/

相关文章:

c++ - 我们能否将规范性引用中未明确引用的内容应用于 C++ 标准?

c++ - 指定 netbeans 用于编译 C++ 程序的完整编译命令?

c++ - 如何开始使用 Poco 库?

c++ - 使用来自 lldb : take 2 的字符串参数调用函数

c++ - directX directInput 键盘抛出 E_accessdenied

c++ - 屏幕显示脚本中 '.' token 之前的预期不合格 ID

c++ - 如何在头文件中定义对象? (不使用它)

c++ - OpenCV Apple Mach-O 链接器错误 - 架构 x86_64 的 undefined symbol

c++ - 分离线程然后让它超出范围(并使其仍在运行)是否安全?

c++ - 如何检查一个集合是否在C++中的特定范围内具有元素