どのメモリに格納されていようと std::string の絡む等価演算は同じ内容の文字列であれば true を返してくれる (std::string#compare は 0 を返す)。 サンプルコードと実行結果。 環境はMac OS X Snow Leopard。 $ cat ./stringcompare.cpp #include <string> #include <string.h> #include <stdio.h> int main(void){ // C const char* a = "Hello"; char b[6] = "H"; strcat(b, "ello"); printf("a = [%s]\n", a); printf("b = [%s]\n", b); if(a == b){ printf("a == b: true\n"); }else{ printf(