W3School TIY Editor

  • W3School 在线教程
  • 改变方向
  • 暗黑模式
​x
 
#include <stdio.h>
#include <stdlib.h>
​
struct list {
  int *data; // 指向存储列表项的内存地址 
  int numItems; // 表示当前列表中的项数 
  int size; // 表示分配内存可容纳的项数 
};
​
void addToList(struct list *myList, int item);
​
int main() {
  struct list myList;
  int amount;
​
  // 创建列表,初始空间可容纳 10 个项 
  myList.numItems = 0;
  myList.size = 10;
  myList.data = malloc(myList.size * sizeof(int));
​
  // 检查内存分配是否成功 
  if (myList.data == NULL) {
    printf("内存分配失败");
    return 1; // 返回错误码退出程序 
  }
  
  // 向列表中添加 amount 变量指定数量的项 
  amount = 44;
  for (int i = 0; i < amount; i++) {
    addToList(&myList, i + 1);
  }
​
  // 显示列表内容 
  for (int j = 0; j < myList.numItems; j++) {
    printf("%d ", myList.data[j]);
  }
​
  // 释放不再需要的内存 
  free(myList.data);
  myList.data = NULL;
  return 0;
}
​
// 该函数用于向列表添加项 
void addToList(struct list *myList, int item) {
​
  // 如果列表已满,则重新分配内存以容纳额外 10 个项 
  if (myList->numItems == myList->size) {
    myList->size += 10;
    myList->data = realloc( myList->data, myList->size * sizeof(int) );
  }
​
  // 将项添加到列表末尾 
  myList->data[myList->numItems] = item;
  myList->numItems++;
}