我想小阵列复制到一个更大的阵列,我无法弄清楚如何得到它的工作(程序总是崩溃的Visual Studio 2008的32倍)的memcpy混乱
为
memcpy(raster+(89997000), abyRaster, sizeof(abyRaster));
的memcpy工作
但不
memcpy(raster+(line*3000), abyRaster, sizeof(abyRaster));
我只是想获得它的工作循环,但得到搞不清指针运算和int和无符号字符的大小。
想法?
unsigned char raster[3000*3000];
unsigned char abyRaster[3000*1];
for(int line=0; line<3000;line++) {
int arrayPosition = line*3000;
memcpy(raster+(arrayPosition), abyRaster, sizeof(abyRaster));
}
当你用300或30代替3000时它会发生什么? – 2011-04-27 11:11:47
你的问题是堆栈不够大。在堆上分配'abyRaster'.A建议:当您在Stack Overflow上发布问题时,请提供错误消息。陈述“程序总是崩溃”并不是很有帮助。包括错误信息会对问题的质量产生重大影响。 – 2011-04-27 11:21:33