动态字符串的 C 动态数组

新手上路,请多包涵

我知道如何在 C++ 中创建一个动态字符串数组:

 string* array = new string[10];

但是如何在 C++ 中创建动态字符串的动态数组?我的意思是一个包含 string* 对象的动态数组。以及如何初始化每个动态字符串?

原文由 Galaxy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 702
1 个回答

我同意,如果您需要实现您的要求,您可能应该重新考虑您的设计。但是,您所要求的语法与字符串数组完全相关:

 string** sillyIdea = new string*[10];
//some access examples
sillyIdea[0]= new string;
*(sillyIdea[0]) = "hello";
(*(sillyIdea[0]))[0] = 'H';
 sillyIdea[1]= new string;

//statement below looks like a 2d array construct but it is not,
//just shorthand for
// *((sillyIdea[1]) + 0)
 sillyIdea[1][0] = "world";
//an array of pointers can usually be treated programtcally as a
//jaggedarray(asymtrical multi-dimensional array). In other words,
// your array of string pointers can be treated like an array of one
//element string arrays, making for a cleaner syntax, but worse code.

//in int main(int argc, char** argv), argv is one such example of a jagged array.

上面建议的字符串向量将减少心痛

原文由 schulmaster 发布,翻译遵循 CC BY-SA 3.0 许可协议

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