【发布时间】:2012-12-10 10:04:30
【问题描述】:
可能是在 SO 上找到的类似问题。但是,我没有发现,这是场景
案例 1
void main()
{
char g[10];
char a[10];
scanf("%[^\n] %[^\n]",a,g);
swap(a,g);
printf("%s %s",a,g);
}
案例 2
void main()
{
char *g=malloc(sizeof(char)*10);
char *a=malloc(sizeof(char)*10);
scanf("%[^\n] %[^\n]",a,g);
swap(a,g);
printf("%s %s",a,g);
}
在这两种情况下我都得到相同的输出。所以,我的问题是我什么时候应该更喜欢malloc() 而不是array 或反之亦然,为什么?我找到了通用定义,malloc() 提供动态分配。所以,这是他们之间唯一的区别??请任何人举例说明,dynamic 的含义是什么,尽管我们在malloc() 中指定了大小。
【问题讨论】:
-
sizeof char始终是1仅供参考
标签: c arrays malloc dynamic-memory-allocation