怎么样才能够定义变量之后再用定义的变量去定义数组?
在思考一些程序思路的时候,经常会遇到定义数组所需的个数不明确的问题!怎么才能够达到定义了变量之后在用变量去定义数组的个数呢?例如:
int i;
scanf("%d",&i);
int s
我知道这样会报错,但是怎么才能达到这样的效果呢?
学数据结构吧 数据结构里面的链表。
或者,int *data = NULL;
scanf("%d", &number);
data = (int *)malloc(sizeof(int)*number);
for(int i = 0; i < number; ++i)
scanf("%d", data)
一种是动态分配内存,一种是使用遵循C99的编译器,VC6遵循的是C98,下面的是动态分配内存
int i;
scanf("%d",&i);
int *s = (int *)malloc(sizeof(int) * i); 想要变长数组? parbbo 发表于 2014-5-21 11:55 static/image/common/back.gif
想要变长数组?
差不多吧!只是不想浪费空间 终于找到了!最后还是函数解决!纠结....
calloc函数 theonethatgot 发表于 2014-5-21 00:53 static/image/common/back.gif
学数据结构吧
数据结构哪里有?
我只是最近查到一个函数能办到!calloc函数 用两个函数
c99标准的可变长度的数组能达到你的母的,遗憾的是,现在的编译器基本上没有完全支持c99de 本帖最后由 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;
} 定义一个结构数组
页:
[1]