C语言问题~关于一维数组

来源:百度知道 编辑:UC知道 时间:2024/05/29 04:05:03
问题1:我想定义一个一维数组,不知道数据的个数,不知道数据是什么,得根据键盘上输入的数据个数来确定,怎样定义这样的数组?
问题2:想以回车符为终止符,可有语法错误:if(count[i]='\n') break;,这样不对啊,请问如何实现?
多谢

1.可以用malloc()/free()函数:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
int n,i;
int *a=NULL; /*动态数组指针*/
printf("n=");
scanf("%d",&n);
a=malloc(sizeof(int)*n); /*分配一个可以存放n个int型数值的数组,并将首地址保存到a中*/
if (a) { /*如果分配成功,则a不为空,可以像静态数组那样使用,进行后续操作*/
for (i = 0; i<n; i++) {
a[i]=i;
printf("%d\t",a[i]);
}

free(a); /*动态分配的数组在使用完成后要用free()进行空间释放,否则其所占空间将无法使作它用。*/
}

return 0;
}
//---------------------------------------------------------------------------

2.修改如下:

if(count[i]=='\n') break;/*注意,是两个等号,而不是一个等号*/

1、定义一个足够大的数组(如4096),定义一个接收变量保存接收数据的个数
2、if (count[i] == '\n')

1)宏定义!
#infine N 10
int a[N]
2)"\n&q