q**p 发帖数: 147 | 1 1,
void newBuffer(char* outBuffer, size_t sz) {
outBuffer = new char[sz];
}
int main() {
const char* kung = "KUNG";
char* foo;
size_t len = strlen(kung);
newBuffer(foo, len);
memset(foo, 0, len+1);
strncpy(foo, kung, len);
cout << foo << endl;
}
这个可以编译,但是有bug,运行之后知道是foo的问题,具体不太明白,求指点
2,
B is a class inherited from A.
B *myPointer = new B();
A *myOtherPointer = myPointer;
printf(“%x”, myPointer);
printf(“%x”, myOtherPointer);
这段代码的两个输出为什么有时候不一样? | c****p 发帖数: 6474 | 2 第一题这么改
void newBuffer(char** outBuffer, size_t sz) {
*outBuffer = new char[sz];
}
【在 q**p 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1, : void newBuffer(char* outBuffer, size_t sz) { : outBuffer = new char[sz]; : } : int main() { : const char* kung = "KUNG"; : char* foo; : size_t len = strlen(kung); : newBuffer(foo, len); : memset(foo, 0, len+1);
| r*******y 发帖数: 1081 | 3 I tried the #2 and the output are same.
【在 q**p 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1, : void newBuffer(char* outBuffer, size_t sz) { : outBuffer = new char[sz]; : } : int main() { : const char* kung = "KUNG"; : char* foo; : size_t len = strlen(kung); : newBuffer(foo, len); : memset(foo, 0, len+1);
|
|