【发布时间】:2010-04-25 13:14:14
【问题描述】:
我有一个名为 PPString 的类:
PPString.h
#ifndef __CPP_PPString
#define __CPP_PPString
#include "PPObject.h"
class PPString : public PPObject {
char *stringValue[];
public:
char *pointerToCharString();
void setCharString(char *charString[]);
void setCharString(const char charString[]);
};
#endif
PPString.cpp
#include "PPString.h"
char *PPString::pointerToCharString() {
return *stringValue;
}
void PPString::setCharString(char *charString[]) {
*stringValue = *charString;
}
void PPString::setCharString(const char charString[]) {
*stringValue = (char *)charString;
}
我正在尝试使用std::cin 设置stringValue:
main.cpp
PPString myString;
myString.setCharString("LOLZ");
std::cout << myString.pointerToCharString() << std::endl;
char *aa[1000];
std::cin >> *aa;
myString.setCharString(aa);
std::cout << myString.pointerToCharString() << std::endl;
使用const char 的第一个有效,但使用char 的第二个无效,我得到以下输出:
从 STDOUT 复制和粘贴
LOLZ
im entering a string now...
Bus error
第二行是我输入的内容,然后按return 键。
谁能帮我解决这个问题?谢谢...
【问题讨论】:
-
感谢描述性标题。它让人们无需阅读即可知道您的问题。
标签: c++ pointers char const-char bus-error