私が読んでいたので、free()
を使う必要がありますが、次に何が起こるのですか?私はそれのようなものを得たらどうですか?free()を使用して、後で何が起こっていますか?
char word[] = "abc";
char *copy;
copy = (char*) malloc(sizeof(char) * (strlen(word) + 1));
strcpy(copy, word);
free(copy);
printf("%s", copy);
私は "abc"と書いています。どうして?
を解放されたメモリへのアクセス* *未定義の動作をトリガーします。 「理由」はありません。何でも起れる。 (そして 'malloc'の結果をキャストするのを止めます)。 – AnT
[malloc/free]の重複の可能性があります。フリーのメモリから読み込むことができます](http://stackoverflow.com/questions/9673733/malloc-free-can-read-from-freed-memory) –