Ste*_*oss 19
虽然你可能知道,char*[]是一个指向字符的指针数组,我猜你想要存储一些字符串.初始化这样的指针数组很简单:
char ** array = new char *[SIZE];
Run Code Online (Sandbox Code Playgroud)
...或者如果你在堆栈上分配内存:
char * array[SIZE];
Run Code Online (Sandbox Code Playgroud)
然后,您可能希望使用循环填充数组,例如:
for(unsigned int i = 0; i < SIZE; i++){
// str is likely to be an array of characters
array[i] = str;
}
Run Code Online (Sandbox Code Playgroud)
如本答案的评论中所述,如果您使用new(动态分配)分配数组,请记住删除您的数组:
delete[] array;
Run Code Online (Sandbox Code Playgroud)
Joh*_*don 11
根据您要初始化的内容,您可以执行以下任何操作:
char mystr[] = {'h','i',0};
char * myotherstring = "my other string";
char * mythirdstring = "goodbye";
char * myarr[] = {0};
char * myarr[] = {&mystr, myotherstring};
char * myarr[10];
char * myarr[10] = {0};
char * myarr[10] = {&mystr, myotherstring, mythirdstring, 0};
Run Code Online (Sandbox Code Playgroud)
等等
像这样:
char* my_c_string;
char* x[] = { "hello", "world", 0, my_c_string };
Run Code Online (Sandbox Code Playgroud)
小智 7
有一点我注意到你必须小心...... C和C++在初始化语法方面有所分歧.正如Mark B.上面指出的那样,你可以初始化一个char指针数组:
const char* messages[] =
{
"Beginning",
"Working",
"Finishing",
"Done"
};
Run Code Online (Sandbox Code Playgroud)
但在C++中.正如kriss指出的那样,这会让你发出一个关于从字符串到char*的弃用转换的警告.那是因为C++假设你想要为字符串使用字符串; - }.
这并非总是如此.所以当你真的想要初始化一个char*数组时,我发现我必须这样做:
const char* messages[] =
{
(char*)("Beginning"),
(char*)("Working"),
(char*)("Finishing"),
(char*)("Done")
};
Run Code Online (Sandbox Code Playgroud)
编译器现在很开心......
归档时间: |
|
查看次数: |
61086 次 |
最近记录: |