小编Dar*_*usz的帖子

使用指针访问结构元素

当下面的程序没有崩溃时,我感到很惊讶.

typedef struct _x {
  int a;
  char b;
  int c;
} x;

main() {
  x *ptr = 0;
  char *d = &ptr->b;
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,->运营商优先于&运营商.所以当我们尝试取消引用NULL指针时,我希望程序在下面的语句中崩溃tr.

char *d = &ptr->b; 
Run Code Online (Sandbox Code Playgroud)

但该声明&ptr->b评估的是有效地址.有人可以解释一下我错了吗?

c pointers structure

5
推荐指数
2
解决办法
4134
查看次数

Python:更改 Windows 7 主音量

我希望能够在 Python 中控制主音量(不是针对应用程序,而是针对当前活跃的演讲者)。这似乎是一个棘手的话题;我尝试在 C# 中做它,但我什至无法让它在那里工作。有没有办法做到这一点?(Windows 7 x64)

请注意,这个问题之前没有回答过,因为我的问题是专门关于Python 的。此外,VonC 所指的项目在 Windows 7 上不起作用。

python windows audio

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

如何停止正在运行的pthread线程?

如何立即退出或停止线程?

当用户输入答案时,如何立即停止?我想让它重置每一个问题.

这是涉及线程的代码

int q1() {
    int timer_start;
    char ans[] = "lol";
    char user_ans[50];
    timer_start = pthread_create( &xtimer,NULL,(void*)timer_func,(void*)NULL);
    printf("What is the capital city of Peru?\n");

    while(limit){
        scanf("%s",user_ans);
        if(limit)
        {
             if(!strcmp(user_ans, ans))
              {

               // printf("YAY!\n");
                score++;
               // q2();

            }
            else
            {
                game_over();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c multithreading pthreads

5
推荐指数
3
解决办法
4万
查看次数

是否可以使用异常来检查数组边界?

我想检查给定的坐标是否与数组有关.

public boolean checkBounds(int x, int y) {
    try {
        Object val = array[x][y];
        return true;
    } catch (ArrayIndexOutOfBoundsException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我能这样做吗?这是一种有效的方法吗?

java exception indexoutofboundsexception range-checking

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

为什么SQLite索引不会加快我的查询速度

我有2张桌子:

tblValidItems - | - tblItems

validID        itemID
-------        ------
3              1
5              2
6              3
...            4
~ 8 K items    5
               ..... 
               ~ 20 K items
Run Code Online (Sandbox Code Playgroud)

我的查询是选择在某些事情tblItems,同时也是在tblValidItems:

SELECT tblItems.itemID FROM tblItems 
JOIN tblValidItems ON tblItems.itemID = tblValidItems.validID
Run Code Online (Sandbox Code Playgroud)

我在两个表上都尝试了带有和没有索引的查询,但结果变化很小:

  • 两个表都有索引 - 127ms
  • 两个表都没有索引 - 132ms

这让我感到惊讶,因为我认为索引会显着影响此查询的速度.为什么不呢?

sql sqlite

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

为什么头文件可以自己包含?

任何人都可以想到头文件包含自身的任何场景吗?

我在其中一个程序中看到它并且这个包含在条件编译块下,至少我找不到任何真实的条件.但是,我在想这样的场景可能有任何技术要求吗?

c header-files

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

为什么我的字段为null,即使它应该立即实例化?

我声明并立即实例化的字段是null.这是一个示例代码:

public class NullFieldSSCCE {

    static abstract class Parent {
        List<String> values;
        Parent() {
            values = getValues();
        }

        protected abstract List<String> getValues();   
    }

    static class Child extends Parent {

        String param1="test1";
        String param2="test2";

        Child() {
        }

        @Override
        protected List<String> getValues() {
            return Arrays.asList( new String[] {param1, param2} );
        }
    }

    public static void main(String[] args) {
        Child child = new Child();

        System.out.println("Child p1="+child.values.get(0)+", p2="+child.values.get(1));
    }

}
Run Code Online (Sandbox Code Playgroud)

运行它的结果是

Child p1=null, p2=null
Run Code Online (Sandbox Code Playgroud)

虽然我期待

Child p1=test1, p2=test2
Run Code Online (Sandbox Code Playgroud)

这怎么可能?这些字段在课程的同一时刻被实例化,不是吗?

java field class instantiation operator-precedence

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

Stream.findAny是短路操作吗?

考虑这段代码

Object found = collection.stream()
    .filter( s -> myPredicate1(s))
    .filter( s -> myPredicate2(s))
    .findAny()
Run Code Online (Sandbox Code Playgroud)

它会处理整个流,并呼吁双方myPredicate1以及myPredicate2为集合中的所有元素?或者,实际找到该值需要调用多少个谓词?

java short-circuiting java-8 java-stream

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

即使函数存在char*,仍然存在未解析的外部符号错误

我在Visual Studio中的一个解决方案中有两个项目.其中一个项目(应用程序)依赖于另一个(库).该库有一个方法:

int foo(_TCHAR*);
Run Code Online (Sandbox Code Playgroud)

它在标头中正确定义并实现.在应用程序中,我调用这样的方法:

int bar(_TCHAR* str) {
  return foo(str);
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

错误LNK2001:未解析的外部符号"public:int __cdecl foo(char*)"

方法签名完全相同,并且使用相同类型的变量.

c++ linker linker-errors visual-studio

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

std :: string到uint64_t

如何将a转换std::stringuint64_t?如果字符串不包含一个纯粹的表示形式,我也希望抛出该函数uint64_t.例如,这些转换应抛出:

"NO: 9889"
"9889L"
"9889U"
"1e+22"
Run Code Online (Sandbox Code Playgroud)

或用另一种方式表明它们不是纯粹的代表.我正在使用C++ 98和boost(包括boost::regex).

c++ boost c++98

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