C拆分指针数组并保存在新变量中
我正忙于将2d指针数组的结果拆分并保存到另一个较小的2d指针数组中。然而,我不能让它工作;只有第一行匹配。有人能帮助我或告诉我我做错了什么吗 代码:C拆分指针数组并保存在新变量中,c,pointers,variables,multidimensional-array,split,C,Pointers,Variables,Multidimensional Array,Split,我正忙于将2d指针数组的结果拆分并保存到另一个较小的2d指针数组中。然而,我不能让它工作;只有第一行匹配。有人能帮助我或告诉我我做错了什么吗 代码: 双回路都是错误的: for (i = 0; i<n; i++){ for (j = 0; j<m; j++){ int rndm = (rand() %2); *((grid+i*n) + j) = rndm; } 一些更好的方法是: 将行偏移量预计算到行指针中:b
双回路都是错误的:
for (i = 0; i<n; i++){
for (j = 0; j<m; j++){
int rndm = (rand() %2);
*((grid+i*n) + j) = rndm;
}
一些更好的方法是:
将行偏移量预计算到行指针中:bool*row=grid+i*m,然后进入循环,使用行[j]访问元素
在主例程bool grid[n][m]中使用实数可变长度数组,而不是malloc;在确定n和m之后。
*网格+i*n+j=rndm;它不应该是*grid+i*m+j=rndm;是的,没错,哈哈!谢谢你的通知。问题解决了。线程可以关闭LOL。谢谢@Jean Françoisfab
for (i = 0; i<n; i++){
for (j = 0; j<m; j++){
int rndm = (rand() %2);
*((grid+i*n) + j) = rndm;
}
*((grid+i*m) + j) = rndm;