我是 C 语言的初学者,如果我的语言/风格不专业,请原谅。
问题:我正在尝试确定字符数组的大小,以便以后可以知道使用 malloc() 分配的大小。
我的代码:
char *dest;
char *src1 = "Test String";
char src2[] = "Testing!";
dest = (char *) malloc( sizeof(src1) );
问题是我想确定 src1 和 src2 在内存中的大小。即 src1 的大小应该是 11,src2 的大小应该是 8。但是我从 sizeof() 收到的结果是:
- sizeof(*src1) 是 1,因为 sizeof(char)
- sizeof(src1) is 4 <--我不知道为什么有人可以解释一下吗?
- sizeof(src2) is 9 <--我猜这就是我想要的,空终止符也计入大小
但是如何正确确定 src1 的大小呢?以及 sizeof(src2) 为何有效但 sizeof(src1) 无效?
如果我不清楚我要做什么,请回复,我会尽量让它更清楚。
提前致谢。