sizeof char*
时间: 2023-08-24 15:04:31 浏览: 55
sizeof(char*) 是用来获取 char* 类型变量的大小(字节数)的运算符。
在大多数平台上,char* 的大小通常是指针的大小,即指针所占用的字节数。这个大小与具体的操作系统和编译器有关,一般情况下是 4 字节或 8 字节,分别对应 32 位和 64 位系统。
例如,在一个占用 4 字节的指针大小的平台上,sizeof(char*) 的结果是 4。
需要注意的是,sizeof 运算符返回的是类型或变量所占用的内存空间的字节数,而不是字符串的长度。如果想获取字符串的长度,可以使用 strlen() 函数。
相关问题
c++.char ** a;a = (char**)malloc(sizeof(char**));
你创建了一个指向指针的指针 `a`,并使用 `malloc` 函数为其分配了内存空间。根据你的代码,你分配了 `sizeof(char**)` 字节的内存空间,但是通常情况下应该使用 `sizeof(char*)` 来分配指针所占的内存空间。另外,你也可以使用 `calloc` 函数来分配内存并初始化为零。
正确的写法应该是:
```c
char **a;
a = (char**)malloc(sizeof(char*));
```
或者使用 `calloc` 函数:
```c
char **a;
a = (char**)calloc(1, sizeof(char*));
```
记得在使用完 `a` 后,要调用 `free(a)` 来释放之前分配的内存空间,以避免内存泄漏。
char * sizeof
char * sizeof是用来获取指针变量所占内存大小的操作符。它返回的是指针变量本身的大小,而不是指针所指向的内存空间的大小。在C语言中,指针变量的大小通常是4个字节(32位系统)或8个字节(64位系统)。下面是一个示例代码演示char * sizeof的用法:
```c
#include <stdio.h>
int main() {
char *p;
printf("sizeof(p): %lu\n", sizeof(p)); // 输出:8(64位系统)
return 0;
}
```
在上面的示例中,我们定义了一个char类型的指针变量p,并使用sizeof操作符获取了p的大小。最后,我们使用printf函数将p的大小打印出来。