在 C 语言中,可以使用以下方法来新建一个大小为 10 个整型的指针数组,而不使用 malloc 函数:
- 在函数内部声明一个指针数组,并分配一个固定的数组大小。
int *arr[10];
- 在全局作用域声明一个指针数组,并分配一个固定的数组大小。
int *arr[10];
- 使用宏来声明一个指针数组,并分配一个固定的数组大小。
#define N 10
int *arr[N];
注意:上述方法只能声明一个指针数组,并不能为数组中的每个元素分配内存。如果需要为每个数组元素分配内存,还需要使用 malloc 或其他内存分配函数。
例如,可以使用以下代码为数组中的每个元素分配内存:
for (int i= 0; i < 10; i++) {
arr[i] = malloc(sizeof(int));
}
还可以使用以下代码为数组中的每个元素分配内存:
for (int i = 0; i < 10; i++) {
*(arr + i) = malloc(sizeof(int));
}
此外,还可以使用 calloc 函数来为数组中的每个元素分配内存,并将内存初始化为 0:
for (int i = 0; i < 10; i++) {
arr[i] = calloc(1, sizeof(int));
}