我遇到了代码方面的严重问题。我不明白为什么会出现这种情况,也不知道该如何解决。
基本上,我尝试定义一个指向字符的指针数组,其中每个指针数组元素存储不同的字符集。
类构造函数: (注:size是一个整数,它指定我的指针数组应该有多大,用户可以定义它)
基本上,我尝试定义一个指向字符的指针数组,其中每个指针数组元素存储不同的字符集。
类构造函数: (注:size是一个整数,它指定我的指针数组应该有多大,用户可以定义它)
storeElements = new char*[size];
假设大小为3,现在storeElements应该是一个指向3个不同字符字符串的指针数组。
*storeElements = "one";
*(storeElements+1) = "two";
*(storeElements+2) = "three";
在我赋值后立即打印这些变量时,它们打印出了正确的字符串,但是在我的代码中其他函数和声明多个其他变量之后,打开输出文本文件后,*storeElements 变得混乱不清。
例如,如果我尝试在代码的后面执行以下操作:
cout << *(storeElements+2) << endl;
它可能打印"one"或者什么都不打印,而不是打印"three"。
这里一定存在动态内存分配问题,因为我正在读取文本文件,有时文本文件的内容会被存储到 *storeElements 的元素中,而我根本没有分配它们给 *storeElements。
请帮助我更好地理解如何修复它。我已经投入了大量时间和精力在我的代码上,并且对此感到非常沮丧。谢谢您抽出时间来帮助我。
std::vector<std::string>>
吗? - Bo Persson