815116820 发表于 2014-5-20 23:18:36

怎么样才能够定义变量之后再用定义的变量去定义数组?

在思考一些程序思路的时候,经常会遇到定义数组所需的个数不明确的问题!怎么才能够达到定义了变量之后在用变量去定义数组的个数呢?
例如:
int i;
scanf("%d",&i);
int s
我知道这样会报错,但是怎么才能达到这样的效果呢?






theonethatgot 发表于 2014-5-21 00:53:00

学数据结构吧

喜欢散步 发表于 2014-5-21 01:28:35

数据结构里面的链表。
或者,int *data = NULL;
scanf("%d", &number);
data = (int *)malloc(sizeof(int)*number);
for(int i = 0; i < number; ++i)
      scanf("%d", data)

风之残月 发表于 2014-5-21 08:10:55

一种是动态分配内存,一种是使用遵循C99的编译器,VC6遵循的是C98,下面的是动态分配内存
int i;
scanf("%d",&i);
int *s = (int *)malloc(sizeof(int) * i);

parbbo 发表于 2014-5-21 11:55:50

想要变长数组?

815116820 发表于 2014-5-21 13:02:17

parbbo 发表于 2014-5-21 11:55 static/image/common/back.gif
想要变长数组?

差不多吧!只是不想浪费空间

815116820 发表于 2014-5-21 20:00:57

终于找到了!最后还是函数解决!纠结....
calloc函数

815116820 发表于 2014-5-22 13:26:18

theonethatgot 发表于 2014-5-21 00:53 static/image/common/back.gif
学数据结构吧

数据结构哪里有?
我只是最近查到一个函数能办到!calloc函数

云舟 发表于 2014-5-31 19:29:32

用两个函数

haovcf 发表于 2014-6-14 03:56:09

c99标准的可变长度的数组能达到你的母的,遗憾的是,现在的编译器基本上没有完全支持c99de

santaclaus 发表于 2014-6-14 10:44:14

本帖最后由 santaclaus 于 2014-6-14 10:53 编辑

#include<stdio.h>
#include <malloc.h>
int main()
{
      int n,j;
      scanf_s("%d", &n);
      //申请空间,n个int型数据的大小作为数组的空间
      int *s = (int*)malloc(sizeof(int)*n);
      
      //为演示,给这个元素赋初值
      for (j = 0; j < n; j++)
      {
               s=j+1;
      }

      //打印数组内容
      for (j = 0; j < n;j++)
      {
             printf("%d ",s);
      }
      printf("\n");

      //重新调整数组大小,可能会内存漏泄,作为演示,就不考虑那么多了。
      s=realloc(s, 20);

      //再打印数组
      for (j = 0; j < 20; j++)
      {
                printf("%d ",s);
      }

      free(s);
      return 0;
}

千亩计者 发表于 2016-8-16 00:45:42

定义一个结构数组
页: [1]
查看完整版本: 怎么样才能够定义变量之后再用定义的变量去定义数组?