私は次のコードを取得しました:
char buffer[2047];
int charsRead;
do {
if(fscanf(file, "%2047[^\n]%n%*c", buffer, &charsRead) == 1) {
// Do something
}
} while (charsRead == 2047);
このコードを動的に割り当てられた変数を使用するように変換して、このコードを頻繁に呼び出すときに大量のメモリリークが発生しないようにしたかったのです。したがって、私はこれを試しました:
char *buffer = malloc(sizeof(char) * 2047);
int *charsRead = malloc(sizeof(int));
do {
if(fscanf(file, "%2047[^\n]%n%*c", *buffer, charsRead) == 1) {
// Do something
}
} while (*charsRead == 2047);
残念ながら、これは機能しません。fscanf呼び出しでのifステートメントの直前に、常に「EXC_BAD_ACCESS」エラーが発生します。私は何が間違っているのですか?
助けてくれてありがとう!
--Ry