小编pb2*_*b2q的帖子

创建线程时丢失成员数据

我发现很难解释这个问题,所以我会发布代码并解释会发生什么,然后问如何让它做我想做的事情.首先,我在子进程中创建一个线程:

pid_t childpid = fork();

if(childpid == -1){
  cout << "Failed to fork." << endl;   
}
else if(childpid == 0){     
  //request threads
  pthread_t p1, p2, p3;          

  struct arg_struct args1, args2, args3;

  args1.name = "data Joe Smith";
  args1.num_req = n;
  args1.buff_size = b;
  pthread_create(&p1, NULL, &mythreadfunc, (void *)&args1);   
}
Run Code Online (Sandbox Code Playgroud)

这是struct arg_struct:

struct arg_struct{
    string name;
    int num_req;
    int curr_value;
    int buff_size;
};
Run Code Online (Sandbox Code Playgroud)

而且 mythreadfunc:

void *mythreadfunc(void *arguments){ 
    struct arg_struct *args = (struct arg_struct *)arguments;
    string local_name = args->name;     
    int …
Run Code Online (Sandbox Code Playgroud)

c c++ multithreading pthreads

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

c ++,读取文件,分段错误

我正在研究这个功能.该main用我在文件我没有问题/ O,它连接罚款,关闭,这些文件都还好了.但是,我在阅读结束时遇到了分段错误.我已经尝试打印出来进行测试,错误是读取最后一行.它完成读取字符串的最后一行a,然后x,然后也in.good()变为假.我已经尝试重置in.clear(),a="";如果in.good变为false 则设置字符串.什么都行不通.

read(istream& in){
    string a;
    int x;
    in>>a;
    while( in.good() ){
        in>>x;
        char *ch;
        strcpy( ch, a.c_str() );
        Word cwd(ch);
        anObject.add(cwd,x);   
    }
}
Run Code Online (Sandbox Code Playgroud)

c c++ io file segmentation-fault

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

C++ EXC_BAD_ACCESS,argv []

我已经坚持了一段时间,无法调试此EXC_BAD_ACCESS错误.我已经运行了NSZombie,我很确定它是一个内存问题argv[1](或者更重要的是).我检查了我的语法和库,所以我不知道为什么它不会存储过去arg[0].

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

int main(int argc, char* argv[])
{
    cout << "Enter the initial bankroll" << endl;
    int bankroll = atoi(argv[1]); //code faults here

    cout << "Enter seed" << endl;
    int seed = atoi(argv[2]);

    // ...
Run Code Online (Sandbox Code Playgroud)

我遗漏了其余的因为错误发生在其他任何事情之前.

代码在终端中运行但是我的班级的自动分级器失败了.

输入的参数:

./blackjack 400 1

应该适用于任何数字.

argv[0]应该是二十一点,argv[1]第一个数字和argv[2]第二个?

c++ exc-bad-access command-line-arguments

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

是否可以将.c文件包含在另一个.c文件中?

例如:

file1.c 具有:

static const struct 
{ 
   int a;
   int b;
   int c;
} mystruct = { 1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

file2.c 具有:

#include <stdio.h>
#include "file1.c"
Run Code Online (Sandbox Code Playgroud)

等等.

这样可以吗?

c struct include

0
推荐指数
2
解决办法
1万
查看次数

C++ strlen(ch)和sizeof(ch)strlen

我有这个代码:

int main()
{
    char ch[15];
    cout<<strlen(ch)<<endl; //7
    cout<<sizeof(ch)<<endl; //15
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

strlen(ch)即使它是空char数组,为什么会给出不同的结果?

c c++

0
推荐指数
2
解决办法
1181
查看次数

这个[]语法是什么意思?

是什么[1]在声明中到底意味着什么?

String magnitudeString = details.split(" ")[1];
Run Code Online (Sandbox Code Playgroud)

不能这样写:

String [] magnitudeString = details.split(" ");
Run Code Online (Sandbox Code Playgroud)

java

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

为什么这个函数返回垃圾值

我正在编写一个程序并面临这个问题,以下函数用于返回垃圾值:

int* foo(int temp){
   int x = temp;
   return &x;
}
Run Code Online (Sandbox Code Playgroud)

当我修改它时,它工作正常:

int* foo(int *temp){
    int *x = temp;
    return x
}
Run Code Online (Sandbox Code Playgroud)

第一个版本出了什么问题?

c pointers function

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

是否可以从嵌套类引用外部类指针?

我需要this在内部类中使用外部类的指针。

我不知道如何在不保存this指针的情况下做到这一点。还有其他选择吗?

class outerclass {

  outerClass thisPointer;

  outerclass () {
      //
      // NOTE: I am saving this pointer here to reference
      // by the inner class later.   I am trying to find
      // a different alternative instead of saving this pointer.
      //
      thisPointer = this; 
  }

  class innerClass {

      void doSomething () {

           //
           // is there a way to reference the outter class
           // without having to save the thisPointer from
           // the outter class. …
Run Code Online (Sandbox Code Playgroud)

java this

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

C++代码说明

我有串行读取的数组,命名sensor_buffer.它包含21个字节.

gyro_out_X=((sensor_buffer[1]<<8)+sensor_buffer[2]);
gyro_out_Y=((sensor_buffer[3]<<8)+sensor_buffer[4]);
gyro_out_Z=((sensor_buffer[5]<<8)+sensor_buffer[6]);
acc_out_X=((sensor_buffer[7]<<8)+sensor_buffer[8]);
acc_out_Y=((sensor_buffer[9]<<8)+sensor_buffer[10]);
acc_out_Z=((sensor_buffer[11]<<8)+sensor_buffer[12]);
HMC_xo=((sensor_buffer[13]<<8)+sensor_buffer[14]);
HMC_yo=((sensor_buffer[15]<<8)+sensor_buffer[16]);
HMC_zo=((sensor_buffer[17]<<8)+sensor_buffer[18]);
adc_pressure=(((long)sensor_buffer[19]<<16)+(sensor_buffer[20]<<8)+sensor_buffer[21]);
Run Code Online (Sandbox Code Playgroud)

这行是做什么的:

variable = (array_var<<8) + next_array_var
Run Code Online (Sandbox Code Playgroud)

它对8位有什么影响?

<<8  ?
Run Code Online (Sandbox Code Playgroud)

更新:用另一种语言(java,处理)的任何例子?

处理示例:(为什么使用H像标题?).

/*
 * ReceiveBinaryData_P
 *
 * portIndex must be set to the port connected to the Arduino
 */
import processing.serial.*;

Serial myPort;        // Create object from Serial class
short portIndex = 1;  // select the com port, 0 is the first port

char HEADER = 'H';
int value1, value2;         // Data received from the serial port

void …
Run Code Online (Sandbox Code Playgroud)

c++ bitwise-operators

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

Java:为什么静态字段彼此"独立"?

在以下代码中,该set方法更改了Calendar类的字段值.该字段YEAR已声明static int YEAR.那么为什么通过创建两个Calendar类对象,对一个对象的更改将反映到另一个对象?这不会发生.我会问你Java开发人员是如何实现这一点的?

Calendar calendar = new GregorianCalendar();
Calendar cal = new GregorianCalendar(2011,9,13);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)

java static field

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