如何动态生成二维数组?我是指第一维也是动态生成的……
如题,
我想做一个根据用户需要动态生成的二位数组,比如用户输入 3,4,我就能生成一个matrix3的数组来。
我一开始想的特别简单,就是先申请空间存matrix[3]这部分,然后再for循环针对matrix[i]申请对应的空间:
int *create_matrix(char width, char height){
int *matrix = calloc(height, sizeof(int));
for(int i = 0; i < height; i++){
*(matrix + i) = calloc(width, sizeof(char));
}
return matrix;
}
但是这样我会得到一个警告:
warning: assignment makes integer from pointer without a cast [-Wint-conversion]
*(matrix + i) = calloc(width, sizeof(char));
换用matrix[i]也同样会出这个警告,所以肯定这样做一定会有问题……那么,应该怎么动态生成这种数组呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
左值和右值得类型都不对呐
左边是
int
, 右边是void*
,下面这样就不会有问题了