1. ホーム
  2. c

C言語でのconstポインタの解放ができない

2023-07-17 07:55:51

質問

どのようにすれば const char* ? 新しいメモリを malloc で新しいメモリを割り当てたのですが、それを解放しようとすると、常にエラー "互換性のないポインタタイプ" を受け取ります。

この原因となるコードは次のようなものです。

char* name="Arnold";
const char* str=(const char*)malloc(strlen(name)+1);

free(str); // error here

どのように解決するのですか?

何人かの人が正しい答えを投稿していますが、何らかの理由で削除され続けています。非恒等式ポインタにキャストする必要があります。 free を取ります。 void* ではなく const void* :

free((char*)str);