C++和C的转换问题

liqian99 2007-04-11 01:22:54
C++语句如下:
unsigned char ** buffer;

buffer = new unsigned char * [height];
buffer[0] = new unsigned char[height * width];

上述两个转成纯C应怎样写,有点不太清楚其区别,哪位在虾帮忙指点一下.
...全文
241 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrg04201111 2007-04-18
  • 打赏
  • 举报
回复
为什么要height*width呢?不明白...解释一下麻烦(新手)
windeflower 2007-04-11
  • 打赏
  • 举报
回复
三楼的稍微改下就哦了。第一个语句应该sizeof(unsigend char*)而不是sizeof(unsigend char)

unsigned char ** buffer;

buffer = ( unsigend char **)malloc(sizeof(unsigend char*) * height );
buffer[0] = ( unsigend char *)malloc(sizeof(unsigend char) * height * width );

WinWing 2007-04-11
  • 打赏
  • 举报
回复
同样奇怪为什么要height*width
WinWing 2007-04-11
  • 打赏
  • 举报
回复
有没有用到后面的内存啊?
改成这样:
unsigned char ** buffer;

buffer = ( unsigend char **)malloc(sizeof(unsigend char[ height] );
for(int i=0;i<height*width;i++)
buffer[i] = ( unsigend char *)malloc(sizeof(unsigend char[height * width ]);
diclover 2007-04-11
  • 打赏
  • 举报
回复
少个反括号:
unsigned char ** buffer;

buffer = ( unsigend char **)malloc(sizeof(unsigend char[ height] ));
buffer[0] = ( unsigend char *)malloc(sizeof(unsigend char[height * width ]));
diclover 2007-04-11
  • 打赏
  • 举报
回复
unsigned char ** buffer;

buffer = ( unsigend char **)malloc(sizeof(unsigend char[ height] );
buffer[0] = ( unsigend char *)malloc(sizeof(unsigend char[height * width ]);

这样就可以了
liqian99 2007-04-11
  • 打赏
  • 举报
回复
还是不对,分配后处理会报错.
haichuan1988 2007-04-11
  • 打赏
  • 举报
回复
我怎么不能提问了
WinWing 2007-04-11
  • 打赏
  • 举报
回复
点右上角的管理就可以了
liqian99 2007-04-11
  • 打赏
  • 举报
回复
三楼的正确,编译通过了,谢谢了.怎样给分?
晨星 2007-04-11
  • 打赏
  • 举报
回复
哦,写错了。
楼上的对,应该是unsigned char
bargio_susie 2007-04-11
  • 打赏
  • 举报
回复
没看到楼上的,学习了。。
bargio_susie 2007-04-11
  • 打赏
  • 举报
回复
不清楚C++语法。。我试着理解下,楼下的纠正。

unsigned char ** buffer;

buffer = ( unsigend char **)malloc(sizeof(unsigend char) * height );
buffer[0] = ( unsigend char *)malloc(sizeof(unsigend char) * height * width );
晨星 2007-04-11
  • 打赏
  • 举报
回复
unsigned char ** buffer;

buffer = (char**)malloc(height * sizeof(char*));
buffer[0] = (char*)malloc(height * width * sizeof(char));
差不多就是这个样子吧。

只是很奇怪为什么第二次还要再乘一个height?难道实际上是三维?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧