int* p = (int*)malloc(sizeof(int));p[2] = 2;,怎样获取数组的大小
时间: 2023-11-21 19:06:51 浏览: 36
由于p指向的是一个单独的int变量,而不是数组,因此无法获取数组的大小。此时p[2]的赋值也是不合法的,因为p指向的内存只有一个int大小,无法访问p[2]。如果想要创建一个大小为2的int数组,应该使用以下代码:
```
int* p = (int*)malloc(2 * sizeof(int));
p[0] = 1;
p[1] = 2;
```
此时p指向的是一个有两个int元素的数组,可以通过sizeof(p)/sizeof(int)来获取数组的大小。
相关问题
int *p=(int*)malloc(sizeof(int)*len);
int *p=(int*)malloc(sizeof(int)*); 这段代码的作用是动态分配一个长度为 len 的 int 类型数组,并将其指针赋值给 p。这里使用了 malloc 函数来实现动态内存分配,sizeof(int)*len 表示需要分配的内存大小,int* 表示将返回的地址强制类型转换为 int 指针类型。最后,将指针赋值给 p 可以通过 p 来访问和操作这个动态分配的数组。
int*p=(int*)malloc(sizeof(int));存入数据
如果您想存入一个整数数据,可以使用以下代码:
```
int data = 42; // 假设要存入的数据是 42
int* p = (int*)malloc(sizeof(int)); // 分配内存
*p = data; // 存储数据到指针所指向的内存地址
```
这段代码将会在堆上分配一个整数大小的内存空间,并将这个内存空间的起始地址保存在指针变量 `p` 中。然后,我们将数据 `42` 存储到指针所指向的内存地址中。这样就完成了数据的存储。当不再需要这个内存空间时,需要使用 `free(p)` 函数释放该内存。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)