C++如何将string数组拷贝到char *array[]字符串数组呢?

345161974
  • 4
新手上路,请多包涵

1:我想把C++的string[]转换为char *array[],但是试了很久发现无法完成该功能,下面是我调试的代码,无论怎么调试,输出的数组总是不断的循环,不清楚哪里问题,请大家帮忙,谢谢!

#include <iostream>
#include <string.h>

using namespace std;

int main() {
    char *instrumentID[] = { 0 };    //订阅合约所以数量为3
    string array[] = { "1yuanpengfei", "2yuwangying", "3huangtilong", "4hongzhaoyang", "5gengchaogang", "6zhangshuai", "7shenshuai" };
    cout << "total string size is:" << sizeof(array) / sizeof(string) << endl;
    int size = sizeof(array) / sizeof(string);
    int i;
    for (i = 0; i < size; i++) {
        const char *charResult = array[i].c_str();
        instrumentID[i] = new char[strlen(charResult) + 1];
        strcpy(instrumentID[i], charResult);
        cout << instrumentID[i] << endl;
    }
}

总是无限的循环输出

回复
阅读 7k
1 个回答
✓ 已被采纳

数组越界了

char *instrumentID[] = { 0 };

这个数组的大小只有1。

可以写成

char **instrumentID = new char *[size];

回复在评论里星号被吃了....

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏