malloc()
を使用すると、free()
ポインタがあることを誰もが知っています。プロセス。なぜ私はmalloc()を使わないで割り振った後にfree()を使わなければならないのですか
しかし、なぜ私はポインタを割り当てるときに、ヒープなしfree()
を使用する必要はありません。
char* text0 = calloc(20, sizeof (char));
strncpy(text0, "Hello World", 20); // Remember to use `free()`!
char* text1 = "Goodbye World!"; // No need for `free()`?
もヒープに割り当てられたメモリを指し、スタック上のポインタtext1
はありませんか?なぜfree()の必要はありませんか?
メモリを解放しないようにメモリを割り当てないでください。 –
あなたのコードはどこにも正しいものがありません。あなたはコンパイラの警告とペダンティックモードを試しましたか? –
メモリリークがあります。 –