【发布时间】:2018-06-04 10:13:40
【问题描述】:
我想为以下 char 指针数组分配内存:
char *arr[5] =
{
"abc",
"def",
"ghi",
"jkl"
};
for (int i = 0; i < 4; i++)
std::cout << "\nprinting arr: " << arr[i];
以下不起作用:
char *dynamic_arr[5] = new char[5];
为字符串数组分配内存的方法是什么?
【问题讨论】:
-
C 和 C++ 是两种非常 不同的语言,字符串和动态分配以及数组在两种语言中的处理方式非常不同。请选择一个。
-
@MaximEgorushkin 甚至没有接近。 C 和 C++ 可能有一些共同的语法,但它们之间还有很多不同之处,尤其是在语义上。与 Java、JavaScript 和 C# 非常相似,它们与 C 和 C++ 都有一些共同的语法,但它们绝对不是同一种语言。
-
@MaximEgorushkin - OP 所展示的代码甚至与 C 语言相差甚远。而且,迂腐的是,C 从来都不是 C++ 的严格子集。
-
同样这段代码在 C++ 中无效,字符串文字不能初始化非 const
char * -
@MaximEgorushkin - 是的,我知道在 C 和 C++ 中都有解决问题的方法。值得注意的是,在两种语言中同时工作的技术被 C 和 C++ 的经验丰富的从业者认为是非常糟糕的技术。