【发布时间】:2013-11-09 16:35:12
【问题描述】:
我明白,如果我有以下情况:
char* c1 = "apple";
char* c2 = "apple";
那么这两个 char* 可以有完全相同的内存地址。 但如果我有以下情况怎么办:
char* c1 = (char*)malloc(sizeof(char)*10);
memset(c1, 0, 10);
c1[0]='a';c1[0]='p';c1[0]='p';c1[0]='l';c1[0]='e';
char* c2 = (char*)malloc(sizeof(char)*10);
memset(c1, 0, 10);
c2[0]='a';c2[0]='p';c2[0]='p';c2[0]='l';c2[0]='e';
即使在这种情况下,c1 和 c2 是否有可能具有相同的地址?
【问题讨论】:
-
如果可能的话,世界上几乎没有软件可以工作。
-
"这两个 char* 可以有完全相同的内存地址" 不,它们可以共享相同的值(即指向的地址)。
标签: c++ c pointers char malloc