我有一个函数,目前没有做任何事情,因为我作为参数发送的char数组没有值。我可以在函数之前写出数据并获得预期的输出,但是如果我在函数中写出来,即使这是我做的第一件事也没有任何结果。
我首先写出字符串,然后将其转换为char数组。我还尝试使用普通字符串作为参数,结果相同。
/*
_Py_NoneStruct is an object of undefined type which can be used in contexts
where NULL (nil) is not suitable (since NULL often means 'error').
Don't forget to apply Py_INCREF() when returning this value!!!
*/
PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */
#define Py_None (&_Py_NoneStruct)
第一个cout的输出是:“0 /”
以下功能的输出无效。控制台中没有显示任何内容。
std::cout << block;
block = this->removeNullCharacters(block.c_str());
答案 0 :(得分:0)
根本不清楚你想要达到的目标,换句话说,你的问题是不完整的。
input
是指向char
的指针,指向大小为512的array
char
的第一个元素。
out
是一个空字符串,在函数末尾返回。
block
是精神分裂症,我猜是同时指向char
和std::string
的指针。你需要真的解决这个问题。
试试这个。我想你想将一个char
s序列的指针传递给函数,并将每个char
连接到string
,直到序列结束(由{{1}终止}})。完全忘掉大小,简单地使用null终止作为循环条件。
\0
但是你必须确保传入一个std::string FileSystem::removeNullCharacters(const char * input){
std::string out = "";
for(int i = 0; input[i] != '\0'; ++i){
std::cout << i << ": " << input[i];
out += input[i];
}
return out;
}
数组或一个指向char
的有效指针(这是一个char
序列的开头,最后一个元素是char
)。