avatar
q*p
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);
这段代码的两个输出为什么有时候不一样?
avatar
c*p
2
第一题这么改
void newBuffer(char** outBuffer, size_t sz) {
*outBuffer = new char[sz];
}

【在 q**p 的大作中提到】
: 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);

avatar
r*y
3
I tried the #2 and the output are same.

【在 q**p 的大作中提到】
: 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);

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。