小编pyr*_*hic的帖子

如何检查void指针是否指向NULL?

所以,如果你这样做:

void *ptr = NULL;
Run Code Online (Sandbox Code Playgroud)

检查该void指针是否为NULL的最佳方法是什么?

我现在的解决方法是:

if (*(void**)ptr == NULL) ... 
Run Code Online (Sandbox Code Playgroud)

但这似乎不是最好的方法,因为我隐含地假设ptr是void**类型(它不是).

c pointers void-pointers

7
推荐指数
2
解决办法
6万
查看次数

STL什么是随机访问和顺序访问?

所以我很想知道,什么是随机访问?

我搜索了一下,找不到多少.我现在的理解是,在容器中的"块"随机放置(如看到这里).随机访问意味着我可以访问容器的每个块,无论在什么位置(所以我可以在不经过所有块之前读取它在第5个位置上所说的内容),而在顺序访问时,我必须经历第1个,第2个,第3和第4到达第5街区.

我对吗?或者如果没有,那么有人可以向我解释随机访问和顺序访问是什么?

c++ stl random-access

5
推荐指数
1
解决办法
5815
查看次数

DataOutputStream编码和截断

我正在编写一个套接字编程应用程序,我很想知道DataOutputStream.

我有两个问题:

  1. 从DataOutputStream哪个字节发送的默认编码是什么?

  2. 什么是的最大尺寸String是OutputStream.writeBytes(String s)可以发送?流是否有可能截断字符串(因此是错误的)?

java

3
推荐指数
1
解决办法
3858
查看次数

改变xdg-open的行为

我在Ubuntu Linux终端中经常使用命令xdg-open。但是,有两件事让我很烦:

  1. 是否可以消除错误消息?

  2. 是否可以使命令始终完成?(也就是说,不要继续运行,这样我的终端中会有另一个“新行”)。

由于程序的工作方式,我意识到2不可能实现,但我想1可以实现。

linux terminal xdgutils

3
推荐指数
1
解决办法
2546
查看次数

为什么printf无法编译?

我正在阅读关于C的Kernigan和Ritchie手册.

出现以下示例:

printf("hello, world
");
Run Code Online (Sandbox Code Playgroud)

该书指出C编译器将产生错误消息.编译器究竟如何检测到这一点,为什么这是一个问题?难道它不应该只读取换行符(可能在世界末尾)没有空格吗?

c printf

3
推荐指数
1
解决办法
368
查看次数

R:去季节性化时间序列

我们可以使用以下代码在 R 中绘制和分解时间序列:

# Monthly Airline Passenger Numbers 1949-1960
data(AirPassengers)
data = data.frame(AirPassengers)
data

#Transform to time series
ts.data1 = ts(data=as.vector(t(data['AirPassengers'])), start = c(1949), end = c(1960), frequency=12)
#Plot seasonality, trend

plot(stl(ts.data1, "periodic"))
plot(ts.data1)

decomposed <- stl(ts.data1, s.window="periodic")
seasonal <- decomposed$time.series[,1]
trend   <- decomposed$time.series[,2]
remainder <- decomposed$time.series[,3]

#Show seasonal effect
seasonal
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:为了淡化,我可以简单地输入

# deseasonalize time sereis
ts.data1 <- ts.data1 - seasonal
ts.data1
plot(ts.data1)
Run Code Online (Sandbox Code Playgroud)

减去季节性值?

我意识到在另一个数据集中,减去季节性值会导致负值。这就是为什么我认为使用一个因子或其他东西会更好。

注意:我不想使用“deseasonalize”包。

r time-series stl-decomposition

3
推荐指数
1
解决办法
8287
查看次数

从概念上讲,为什么数组地址不可修改?

当你声明一个数组时我会得到它,例如:

int Numbers[5];
int *intPtr = NULL;
Run Code Online (Sandbox Code Playgroud)

您不能执行以下操作:

Numbers++;
Numbers + 1 = intPtr;
Numbers = NULL;
etc
Run Code Online (Sandbox Code Playgroud)

使数组的基址(和后续地址)保持不变(或不可修改?)的动机是什么?让我们说出于一些奇怪的原因,我想这样做:

Numbers + 8 = intPtr;
Run Code Online (Sandbox Code Playgroud)

为什么编译器不允许访问超过分配的整数(在这种情况下为5)?

c arrays pointers

1
推荐指数
1
解决办法
235
查看次数

测量extern程序使用的经过时间,内存量和CPU

我正在通过Python执行外部程序.我想知道什么是调用外部程序,最好的选择subprocess.Popen()还是有subprocess.call().此外,我需要测量外部程序使用的经过时间,内存量和CPU.我听说过psutil,但我真的不知道该选哪个.

python shell subprocess psutil

1
推荐指数
1
解决办法
2524
查看次数

"朋友std :: ostream&operator <<(std :: ostream&out,LinkedList&list)"是什么意思?

因此,我获得了一个带有入门代码的作业来实现一个链表(我已经成功完成了未分类的双向链表),并且在给定头文件的入门代码中有一个朋友声明似乎有允许的目标我使用cout语句打印链表.这是头文件; 请注意,我在私人部分写了一切.

#ifndef _LINKED_LIST_
#define _LINKED_LIST_

#include <ostream>

class LinkedList
{
public:
    LinkedList();
    ~LinkedList();

    void add(char ch);
    bool find(char ch);
    bool del(char ch);

    friend std::ostream& operator<<(std::ostream& out, LinkedList& list);

private:
    struct node
    {
        char data;
        node * next;
        node * prev;
    };
    node * head, * tail;
};

#endif // _LINKED_LIST_
Run Code Online (Sandbox Code Playgroud)

在main,这也是初学者代码的一部分,老师写道cout << list;,这让我相信头文件中的友元声明的目标是允许列表轻松地打印到控制台.通常我不在乎,但如果我不注释掉cout << list;语句,那么链接器会为每个实例提供以下错误cout << list;

app.o: In function 'main':
[code directory]/app.cpp:[line the statement is on]: undefined reference to …
Run Code Online (Sandbox Code Playgroud)

c++ friend linker-errors

1
推荐指数
1
解决办法
5924
查看次数

为什么这个声明会编译?

为什么以下代码行不会产生错误?

double x = 4.2, y;
Run Code Online (Sandbox Code Playgroud)

此外,x似乎被分配到4.2,而不是y的值(似乎是1e-39,或非常接近0).

c

-1
推荐指数
2
解决办法
329
查看次数