サイズ1MBの配列を初期化します。だから私の目標は最終的に1MBをファイルに書き込むことです。 私はこの式を使用するたびに1MB未満のものを与えているのが不思議です。Cで正確な1MBの配列を書くには?
int len = (1048576)/sizeof(int);
data = (int *) malloc(len);
どのような正しい方法ですか? は
編集をありがとう - コメントを1として、私は、コードを変更しました。
mpicc -o a mpiFileSize.c
./a > dump.dat
の下に今私はdump.datのファイルサイズを確認するようにそれ、私はデータをダンプしようとしたコンパイルした後
#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;
}
'malloc()'は割り当てるバイト数をとります。 'sizeof(int) 'で分割する必要はありません。 – kichik
1つのMBをファイルに書き込むことが目標の場合は、なぜあなたは1 MBのメモリが必要だと思いますか?たとえば、ファイルに1024 x 1024バイトを書き込むことができます(単純にループすればよいでしょう)。 – GhostCat
プログラミング101:コードを書く前にマニュアルをお読みください。 102:SOの質問をする前にマニュアルをお読みください。 – user3528438