在32位系统中,请计算 sizeof(p )+sieof (str )+sizeof( p.str ) 的值():void*p=malloc(8);char str[]="hello";char*p_str=str;
时间: 2024-05-04 21:20:13 浏览: 19
在32位系统中,指针大小为4字节,字符串"hello"的长度为6字节(包括字符串结尾的'\0'),则可以计算出:
- sizeof(p) = 4
- sizeof(str) = 6
- sizeof(p.str) 是错误的写法,因为p是一个指针变量,没有属性str。如果想获取指针p指向的字符串长度,可以使用strlen函数,例如:
```
size_t len = strlen(p_str);
```
因此,无法计算sizeof(p.str)的值。
相关问题
Char str[ ] = “http://www.xgimi.com/” char *p = str ; int n = 10; void *p = malloc( 100 ): 请计算 (1) sizeof (str ) =
在计算 `sizeof(str)` 之前需要先了解一下字符串的存储方式。
在 C 语言中,字符串实际上是以字符数组的形式存储的,由于字符串是以 null 字符(`\0`)作为结尾的,因此字符数组的长度必须比字符串的长度大 1,以容纳这个 null 字符。
因此,对于字符串 `str`,它实际上是一个长度为 22 的字符数组,其中包括 21 个字符和一个 null 字符。因此,`sizeof(str)` 的结果为 22。
另外,代码中的 `void *p = malloc(100)` 有一个语法错误,应该修改为 `void *ptr = malloc(100)`。这行代码的作用是动态分配了一个大小为 100 字节的内存块,并将其首地址赋值给指针变量 `ptr`。
char strll="Hello; char *p= stf void*p2=malloc(n) 请计算szeof(str);sizeof(p);sizeof(n);sizeof(p2).
在你的代码中,有一些语法错误和拼写错误。我假设你想要这样的代码:
```
char str[] = "Hello";
char *p = str;
void *p2 = malloc(sizeof(int));
printf("sizeof(str) = %ld\n", sizeof(str));
printf("sizeof(p) = %ld\n", sizeof(p));
printf("sizeof(n) = %ld\n", sizeof(int));
printf("sizeof(p2) = %ld\n", sizeof(p2));
free(p2);
```
这段代码的输出将是:
```
sizeof(str) = 6
sizeof(p) = 8
sizeof(n) = 4
sizeof(p2) = 8
```
这里解释一下每个 `sizeof` 的结果:
- `sizeof(str)`:`str` 是一个字符数组,它包含了 6 个字符,所以 `sizeof(str)` 的值是 6。
- `sizeof(p)`:`p` 是一个指向字符的指针,它在 64 位的系统上占用 8 个字节,所以 `sizeof(p)` 的值是 8。
- `sizeof(n)`:`n` 是一个整数,它在大多数系统上占用 4 个字节,所以 `sizeof(n)` 的值是 4。
- `sizeof(p2)`:`p2` 是一个指向 `void` 的指针,它在 64 位的系统上占用 8 个字节,所以 `sizeof(p2)` 的值是 8。
最后,因为我们使用了 `malloc` 分配了内存,所以需要使用 `free` 函数来释放这段内存,避免内存泄漏。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)