对于a char [],我可以很容易地得到它的长度:
char a[] = "aaaaa";
int length = sizeof(a)/sizeof(char); // length=6
Run Code Online (Sandbox Code Playgroud)
但是,我不能这样做以获得a的长度char *:
char *a = new char[10];
int length = sizeof(a)/sizeof(char);
Run Code Online (Sandbox Code Playgroud)
因为,我知道,a这里是一个指针,所以length这里将永远是4(或不同系统中的其他东西).
我的问题是,如何才能获得char *事后的长度?我知道有人可能会挑战我你已经知道它,10因为你刚刚创造了它.我想知道这一点,因为这个获得它的长度的步骤可能会从它的创建中走很长一段路,而且我不想长时间回来检查这个数字.而且,我也想知道它的实际长度.
更具体
length=5?length=10?对于以下示例:
char *a = new char[10];
strcpy(a, "hello");
Run Code Online (Sandbox Code Playgroud)