我正在尝试创建一个指向char的指针并将其传递给char *。 这是我定义char数组的代码 似乎编译器无法识别字符串的结尾 因为功能显示没有显示正确的字符串
char myword[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
char str[] = {'M','i','k','e',' ','s','m','i','t','h','\0'};
char str2[] = "Dragic\0";
char* pname=&str[0];
char* pteam=&str2[0];
Display(myword);
答案 0 :(得分:1)
Display()
功能中有错误。您发布的代码完全有效。您可以查看here。
无论如何,为什么要用这种方式声明这些数组呢?你可以这样做:
char myword[] = "Hello";
char str[] = "Mike Smith";
char str2[] = "Dragic";
char* pname = &str[0];
char* pteam = &str2[0];
如果是常量字符串文字,则自动附加null终止符。然后:
printf("%s\n", myword);
printf("%s\n", str);
printf("%s\n", str2);
printf("%s\n", pname);
printf("%s\n", pteam);
输出:
Hello
Mike Smith
Dragic
Mike Smith
Dragic
您可以找到工作样本here。
答案 1 :(得分:-1)
如果您只需要一个字符串,请不要使用char数组,请使用std::string。如果您需要数组,请使用std::vector或std::array
如果你真的必须使用裸数组(堆分配)和指针,至少用RAII封装它。