son*_*ool 3 c++ pointers cstring
我在这里设置一个指针指向一个指针,另一个指向再次命名,但得到了lenth.我怎么用cout << strlen(tail);它一直告诉我lenth是3?即使我输入12的东西?
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char name[0];
cout << "Please enter your name: ";
cin.getline(name, 256);
cout << "Your name: " << name << endl;
char* head = name;
cout << head[6] << endl;
char* tail = name;
cout << strlen(tail);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
同
char name[0];
Run Code Online (Sandbox Code Playgroud)
您正在分配一个大小的缓冲区0来存储数据.你需要使它足够大,以便输入最长的字符串(对于NUL终结符加1)(在这种情况下为256)(因为你读的是255个字符和NUL cin.get(name, 256)):
char name[256];
Run Code Online (Sandbox Code Playgroud)