我想初始化一个大小为1MB的数组。所以我的目标是最终将1MB写入文件。 我很好奇每次使用这个配方时它都会少于1mb。
int len = (1048576)/sizeof(int);
data = (int *) malloc(len);
什么是正确的方法? 谢谢
编辑 - 根据评论,我更改了代码。
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
#include <string.h>
int main(int argc, char *argv[]) {
int *data;
int bytes = (1024*1024);
data = (int *) malloc(bytes);
for(int i=0;i<bytes;i++){
data[i] = (int)rand();
printf("%d",data[i]);
}
return 0;
}
编译之后我尝试转储下面的数据
mpicc -o a mpiFileSize.c
./a > dump.dat
答案 0 :(得分:2)
试试这个
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
#include <string.h>
int main(int argc, char *argv[]) {
char *data;
int bytes = (1024*1024);
data = (char *) malloc(bytes);
for(int i=0;i<bytes;i++){
data[i] = (char) rand();
printf("%c",data[i]);
}
return 0;
}
你应该使用字符而不是整数。