【发布时间】:2015-12-27 06:40:07
【问题描述】:
假设我有以下代码:
void incrementPointer( const char *x) {
char *localVar = new char;
char *localVarPtr = localVar;
while(*xPtr != '\0') {
xPtr++;
localVarPtr++;
}
}
假设 x 指向某个以 null 结尾的单词。执行完while循环后,localVarPtr是否指向了一个没有分配给localVar的位置?例如,如果我在这个函数中声明了一些其他变量,然后将 localVar 和 localVarPtr 之间的所有字节设置为字符 'c',这可能会覆盖其他变量的值吗?
我的另一个问题是,如果这被认为是不好的做法(即可能覆盖变量或导致未定义的行为),如果 x 指向一个大小为 unlimited? x 的大小可能大于无符号整数,因此我无法在 localVar 的初始化中使用该大小。
【问题讨论】:
-
我在哪里可以买到无限内存的电脑?圣诞节我没有得到一个:-(
-
代码应该做什么?
标签: c++ variables pointers strlen