【发布时间】:2011-06-12 09:31:20
【问题描述】:
我想将一个 char 复制到给定 char* 指向的地址。
它在 main 调用的函数中:
char data = " ";
myfunction(data, somethingelse);
...
在函数内部我有类似的东西
void myfunction(char* data, short somethingelse) {
...
char byte = 0;
inputfilestream.read(&byte, 1);
*data = byte; // here i get the segfault
data++;
...
}
当 i 使用 strncpy 复制时,segfault 也会出现:
strncpy(data, byte, 1);
为什么会有段错误? data 不是 const 并且我实际写入的地址与我分配数据数组的地址完全相同。我已经测试过很多次了。
提前致谢。
【问题讨论】:
-
这段代码甚至不应该编译:
char data = " "; -
字符数据 = " "; - 你的意思是 char[] data = " "; ?
标签: c++ char segmentation-fault