私は小さなコードを持っています。私は-lmcheck
でコンパイルしました。同じようなエラーが発生したコードをデバッグしようとしています。メモリClobberingエラー
私はこのコードを実行したときに、私はこのエラーを取得:
memory clobbered before allocated block
誰かがfree(ptr)
が私にこのエラーがスローされます理由を説明できますか?
他にどのようにポインタを解放できますか?
ありがとうございました。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#define LEN 5
int main(int argc, char *argv[]){
char *ptr = NULL;
ptr = (char *) malloc(LEN+1);// +1 for string
strcpy(ptr, "hello");
int i = 0;
for(i = 0; i<LEN; i++)
{
printf("ptr[%d] = %c\n", i, ptr[i]);
ptr++;
}
free(ptr);
return 0;
}
また、http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858#605858をご検討ください。 – unwind