如何给指针分配空间
时间: 2023-07-20 20:05:58 浏览: 45
在 C 语言中,可以使用 `malloc()` 函数来分配指定大小的内存空间,返回的是一个 void 类型的指针,需要强制转换为具体的指针类型后才能使用。例如:
```c
int *p;
p = (int*) malloc(sizeof(int));
```
上述代码中,先声明了一个 int 类型的指针 `p`,然后使用 `malloc()` 函数分配了一个 int 类型的内存空间,并将其地址赋值给 `p`。最后需要记得在使用完之后使用 `free()` 函数释放该内存空间,避免出现内存泄漏问题。例如:
```c
free(p);
p = NULL; // 将指针置为空,避免成为野指针
```
相关问题
c语言给结构体指针分配空间
可以使用malloc函数为结构体指针分配空间,示例代码如下:
```
#include <stdlib.h>
struct Person {
char name[20];
int age;
};
int main() {
struct Person *p = (struct Person*)malloc(sizeof(struct Person));
if (p == NULL) {
// 分配失败处理
return -1;
}
// 对结构体指针进行赋值操作
free(p); // 释放内存空间
return 0;
}
```
在以上代码中,首先使用malloc函数为结构体指针p分配了sizeof(struct Person)大小的空间,然后对p进行了赋值操作,最后使用free函数释放了内存空间。需要注意的是,使用完malloc分配的内存后,需要及时使用free函数释放,以免出现内存泄漏的问题。
为指针数组分配空间
指针数组是一个数组,其中的每个元素都是一个指针。为指针数组分配空间,需要先确定数组的大小,然后为每个指针分配空间。
下面是一个示例代码:
```c
#include <stdlib.h>
int main() {
int size = 10; // 指针数组的大小
int* arr[size]; // 声明指针数组
for (int i = 0; i < size; i++) {
arr[i] = malloc(sizeof(int)); // 分配空间
}
// 使用指针数组
for (int i = 0; i < size; i++) {
*arr[i] = i;
}
// 释放空间
for (int i = 0; i < size; i++) {
free(arr[i]);
}
return 0;
}
```
在这个示例中,我们首先声明了一个大小为 10 的指针数组 `arr`,然后使用 `malloc` 为每个指针分配了 `sizeof(int)` 字节的空间。在使用指针数组时,我们可以通过 `*arr[i]` 来访问每个指针所指向的内存空间。最后,我们使用 `free` 释放了每个指针所占用的空间。