C语言如何给动态分配的数组赋值

C语言如何给动态分配的数组赋值,注意回答如果是使用循环去复制的大神们就省省力,不用去敲键盘回答了谢谢,int*b=(int*)malloc(3*sizeof(int));... C语言如何给动态分配的数组赋值,注意回答如果是使用循环去复制的大神们就省省力,不用去敲键盘回答了谢谢,
int *b = (int *)malloc(3 * sizeof(int));
b = {4,5,6}; //这种形式是错误的·
展开
 我来答
tattackor
推荐于2017-10-13 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:886万
展开全部

1、当成普通数组使用,用for循环即可赋值。

2、例程:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *a=NULL;
int i;
a=malloc(sizeof(int)*10);/*动态创建一个有10个int元素的数组*/
if (a==NULL) { /*a==NULL表示空间分配失败*/
fprintf(stderr,"MEMORY ERROR");
return -1;
}
for (i = 0; i < 10; i++) {
a[i]=i; /*对数组进行赋值操作*/
}
free(a);/*动态分配的空间需要用free()函数释放*/
return 0;
}
liuchengbodp
推荐于2017-10-07 · TA获得超过102个赞
知道小有建树答主
回答量:173
采纳率:75%
帮助的人:68.2万
展开全部
那样赋值也只能用可变参了.
void set(int *value,int num,...)
{
for(int i=0;i<num;i++)
value[i]=*(int*)((char*)&num+i*4+4);
}
int *b = (int *)malloc(3 * sizeof(int));
set(b,3, 4,5,6);//set (设置变量,设置的数量,值1,值2...)
追问
恩,这个可以有,只是有个小小的瑕疵:value[i]=*(int*)((char*)&num+i*4+4);这条代码会降低可移植性,不同的机器上运行的话可能会得到不同的结果,使用标准的C提供的一些操作stdarg.h

va_start va_end va_arg 最后一个是关键点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l00oy
2013-07-28 · TA获得超过1239个赞
知道小有建树答主
回答量:611
采纳率:78%
帮助的人:199万
展开全部
int *b;
b=(int *)malloc(3 * sizeof(int));
首先分配数组空间,现在假设要对数组的第1个元素赋值为4,第2个为5,第3个为-4
*(b+0)=4;
*(b+1)=5;
*(b+2)=-4;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-07-28 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1609万
展开全部
如果都知道要赋多少个值了,动态分配有何意义……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式