以下是我的两个结构:
for (int i = 0; i < dimensions[0]; i++)
{
sortedData[i] = (data + i * 512);
}
data var包含文件中的整数。 sortedData应该是2D版本的数据。以下是我初始化它的方法:
printf("%d\n", data[0]);
printf("%d\n", sortedData[0][0]);`
测试我使用的值:
81
44766304
问题是第二个printf的结果是一个地址,所以值是:
for (int i = 0; i < dimensions[0]; i++)
{
printf("%d\n", data + i * 512);
sortedData[i] = (data + i * 512);
}
我试图像这样打印(data + i * 512)的值:
81
81
事情就是这样:printf为每个i返回一个地址,但是现在,程序的结果正是我要找的:
... = malloc(sizeof(int) * 512);
我无法理解printf如何更改返回值以及为什么我的初始解决方案是错误的。
编辑1:从
更改sortedData后仍然无效... = malloc(sizeof(int *) * 512);
到
PrintObjectTransformedInputStream txtInStream = spooledFile.getTransformedInputStream(plist);
txtInStream = spooledFile.getTransformedInputStream(plist);
spooledFile.getStringAttribute(PrintObject.ATTR_CODEPAGE);
if(txtInStream != null) {
byte[] buffer = new byte[64 * 1024];
fileoutputstream = new FileOutputStream(fileName);
int bytesRead = 0;
while ((bytesRead = txtInStream.read(buffer)) != -1) {
fileoutputstream.write(buffer, 0, bytesRead);
}
fileoutputstream.close();
txtInStream.close();
}