我不知道如果这个问题让太多的感觉,所以我会尽量表现为例:在C++中有从不同的内存位置打印char *的方法吗?
想象我在内存位置&s
(NOT NULL终止)和另一个字符串串在内存位置z
(空终止)。
char s[4]; s[0] = 'a'; s[1] = 'a'; s[2] = 'a'; s[3] = 'a';
char *z = malloc(sizeof(char) * 4);
z[0] = 'a'; z[1] = 'a'; z[2] = 'a'; z[3] = '\0';
char *y = malloc(sizeof(char) * 4);
y[0] = 'a'; y[1] = 'a'; y[2] = 'a'; y[3] = '\0';
有代表一个字符串,u
的方式,那就是s
和z
串联和另一个字符串,v
,那就是s
和y
串联无需复制s
?
我知道它的读取速度不会很快,但它肯定会节省更多的内存,尤其是重复次数。由于s
的值可能与z
和y
分开更改,并且更改应该出现在z
和v
中,如果可能,无需克隆s
肯定会更有效。
是的,但你必须创建自己的类来管理字符串中的这些“跳跃”。 – Overv 2014-09-01 15:06:30
您是否在制作嵌入式系统的程序,如果没有,则忘记内存使用情况。 – Alker 2014-09-01 15:06:41
顺便说一句,'malloc'比C++更C ...... – Jarod42 2014-09-01 15:19:14