鱼C论坛

 找回密码
 立即注册
查看: 2180|回复: 11

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

[复制链接]
发表于 2014-5-20 23:18:36 | 显示全部楼层 |阅读模式
10鱼币
在思考一些程序思路的时候,经常会遇到定义数组所需的个数不明确的问题!怎么才能够达到定义了变量之后在用变量去定义数组的个数呢?
例如:
int i;
scanf("%d",&i);
int s[i};
我知道这样会报错,但是怎么才能达到这样的效果呢?






想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-21 00:53:00 | 显示全部楼层
学数据结构吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[i])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-21 08:10:55 | 显示全部楼层
一种是动态分配内存,一种是使用遵循C99的编译器,VC6遵循的是C98,下面的是动态分配内存
int i;
scanf("%d",&i);
int *s = (int *)malloc(sizeof(int) * i);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-21 11:55:50 | 显示全部楼层
想要变长数组?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-21 13:02:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-21 20:00:57 | 显示全部楼层
终于找到了!最后还是函数解决!纠结....
calloc函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-22 13:26:18 | 显示全部楼层
theonethatgot 发表于 2014-5-21 00:53
学数据结构吧

数据结构哪里有?
我只是最近查到一个函数能办到!calloc函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-31 19:29:32 | 显示全部楼层
用两个函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-14 03:56:09 | 显示全部楼层
c99标准的可变长度的数组能达到你的母的,遗憾的是,现在的编译器基本上没有完全支持c99de
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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]=j+1;
        }

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

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

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

        free(s);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-16 00:45:42 | 显示全部楼层
定义一个结构数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-9 20:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表