6
I.  char *str = "Stack";

II. char *str = (char*) malloc(6);
    strcpy(str, "Stack");

上記の2つのアプローチの違いは何ですか?

それらは同じですか、それともカーテンの後ろで何かが異なりますか?

4

3 に答える 3

2

最初のケースでは、ポインタconst char*はプロセスメモリの読み取り専用部分に割り当てられている を指しています。
2 番目のケースでは、メモリを動的に割り当てており、最終的に文字列 "Stack" を割り当てられたメモリにコピーします。

最終的には、を使用してIIfreeからメモリを解放する必要があります。

于 2013-04-15T17:47:02.643 に答える