C语言,如何给二维指针分配内存?下列表达正确吗?

inti,j;//将图像数据存储于一个二维数组img_buffer=(unsignedchar**)malloc(height);for(i=0;i<height;i++... int i,j;

//将图像数据存储于一个二维数组
img_buffer=(unsigned char**)malloc(height);
for(i=0;i<height;i++){
img_buffer[i]=(unsigned char*)malloc(width*3);
for(j=0;j<width*3;j++){
img_buffer[i][j]=img_data[i*width*3+j];
}
}

/*全局变量
unsigned char *img_data;
unsigned char **img_buffer;*/
展开
 我来答
百度网友2018359
2016-12-13 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1426万
展开全部
	int x,y;  //x为行, y为列
scanf("%d,%d",&x,&y);
int **s;
s=(int**)malloc(sizeof(int*)*x);
int i;
for(i=0;i<x;i++)
{
*(s+i)=(int*)malloc(sizeof(int)*y);
}
更多追问追答
追问
咱俩表达式等效的,但是运行时还是内存溢出,就是按照你的改,也是一样的效果,我试了。
还有没有更好的办法?
追答

不会吧, 我都是这样定义的, 从没出过问题

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式