我正在解析一个文件并尝试将坐标解码到正确的单位.会发生什么是这个代码被评估为0.如果我在gdb中键入它,结果是正确的.
int pLat = (int)(
        (argv[6].data() == "plus" ? 1 : -1)
        * (     atoi(argv[7].data()) 
              + atoi(argv[8].data()) / 60. 
              + atoi(argv[9].data()) / 36000.)
        * 2.145767 * 0.0001);
我正在做(度,分,秒)转换为wgs.这段代码有问题吗?
在堆栈内存和堆内存上使用memcpy有什么区别?以下代码适用于Tru64但LINUX上的段错误
char * string2 = "            ";
(void)memcpy((char *)(string2),(char *)("ALT=---,--"),(size_t)(10));
第二个版本适用于LINUX
char * string2 = malloc(sizeof(char)*12);
(void)memcpy((char *)(string2),(char *)("ALT=---,--"),(size_t)(10));
有人可以解释LINUX上的段错误吗?
我有一个Java客户端,它将UTF-8字符串发送到C#TCP-Server,我正在使用DataOutputStream来发送字符串.代码如下所示:
public void sendUTF8String(String ar) {
    if (socket.isConnected()) {
        try {
            dataOutputStream.write(ar.getBytes(Charset.forName("UTF-8")));
            dataOutputStream.flush();
        } catch (IOException e) {
            handleException(e);
        }
    }
}
问题是,冲洗似乎不正常.如果我发送两个字符串彼此接近,服务器只接收一个包含两个字符串的消息.如果我在调用之间执行Thread.sleep(1000),整个过程都有效,这显然不是解决方案.我错过了什么?