C语言中怎样定义动态一维数组

2025-01-21 08:48:35
推荐回答(5个)
回答1:

在C语言中,数组的定义都是固定长度的,长度不允许变化。


可以通过链表的方式来达到定义”动态数组“的等价功能,举例如下:

链表节点定义如下:

struct node
{
    int data;  // 数据域
    struct node *next; // 指针域
};

存放数据时可以对节点中的node赋值即可,如:

struct node *p;  // 定义一个链表节点
p->data = 3;  // 存放第一个数据
p = p->next;
p->data = 5;  // 存放第二个数据

这样,需要存放多少个数据就可以动态定义了,相当于实现了动态数组的功能。

回答2:

void * malloc(字节数)
你用的时候把void 型的指针强制转换为你需要的类型的指针就行了

int *array =(int*)malloc(字节数);

回答3:

int n,*pi;
n=5;
pi=(int *)malloc(sizeof(int)*n)
再需重新分配空间时使用
void *realloc(void *block, size_t size)

最后不要忘了
free(pi);

回答4:

int *array =(int*)malloc(sizeof(int)*n); // n 为你要定义数组的大小

回答5:

#include
#include
using namespace std;

int main(){
int n,i;
scanf("%d,&n");
vector a(n);
for(i=0;i return 0;
}