我想在运行时增长一个数组(不使用 macos 预先定义长度)
我有以下问题
我尝试了以下代码(并期待
012
作为输出)但是得到 000
#include <stdlib.h>
#include <stdio.h>
int main()
{
int *arr = NULL;
size_t n = 0;
for (int i = 0; i < 3; ++i) {
arr = realloc(arr, (n + 1) * sizeof *arr);
arr[n++] = i;
printf("%d", *arr);
}
}
OP 大多都有它。
每次只是打印第一个元素。
// printf("%d", *arr);
printf("%d", arr[n-1]);
可以用数组来做吗?
没有。在 C 中,数组一旦定义就不能改变大小。
由指针分配和引用的内存大小可以改变。