使用malloc动态分配内存是所有指针都要分配吗
时间: 2024-02-01 12:14:33 浏览: 60
动态分配二维指针内存
4星 · 用户满意度95%
不是所有指针都需要使用malloc动态分配内存,只有在需要在运行时动态分配内存的情况下才需要使用malloc。例如,如果你想在程序中创建一个数组,但是数组的大小在编译时期是未知的,那么你可以使用malloc来动态分配内存,如下所示:
```
int n;
scanf("%d", &n);
int *array = (int*) malloc(n * sizeof(int));
```
在这个例子中,我们使用了malloc来动态分配一个大小为n的整型数组。由于数组的大小在运行时期才确定,因此我们需要使用malloc来动态分配内存。但是,如果你已经知道了数组的大小,那么你可以直接在栈上分配内存,如下所示:
```
int array[10] = {0};
```
在这个例子中,我们已经知道数组的大小是10,因此可以直接在栈上分配内存,而不需要使用malloc动态分配内存。同样,如果你想在程序中创建一个字符串,但是字符串的长度在编译时期是未知的,那么你可以使用malloc来动态分配内存,如下所示:
```
char *str = (char*) malloc(n * sizeof(char));
```
在这个例子中,我们使用了malloc来动态分配一个长度为n的字符串。同样地,由于字符串的长度在运行时期才确定,因此需要使用malloc来动态分配内存。
阅读全文