+ -
当前位置:首页 → 问答吧 → 赋值的错误,大部分时候没有,偶尔会出现错误

赋值的错误,大部分时候没有,偶尔会出现错误

时间:2010-09-10

来源:互联网

  1. printf("临时数据:%s\n",(char*)&tmp_xy);
  2. printf("存储一个临时数据\n");
  3. memset(arg->connfds[i][3],0,100);
  4. strcpy(arg->connfds[i][3],(char*)&tmp_xy);
  5. printf("标签1\n");
复制代码
执行如下
  1. 临时数据:2099:74:2286:163:1284089089
  2. 存储一个临时数据
  3. successfully get child 3258  //这个是另外一个程序铺货到这个进程当掉了(死了)抛出的信息
复制代码
没有看到 标签1 说明就是中间那两行中的一行有问题,但不是每次执行都有哦,大侠帮分析下原因吧

作者: jd808   发布时间: 2010-09-10

connfds什么类型,贴出声明看看。

作者: davelv   发布时间: 2010-09-10

  1. struct ARG
  2. {
  3.     int connfd[10000][50];
  4.     char *connfds[10000][5];
  5. };
复制代码
是这个类型的

作者: jd808   发布时间: 2010-09-10

楼主可以认真阅读下memset和strcpy的函数声明。
这两个函数的参数1都必须是指针,对于这种使用方法,如果不崩溃,我会觉得很奇怪。

作者: davelv   发布时间: 2010-09-10

是指针啊,怎么会不是指针呢?如果不是指针,连编译都过不了啊,更何况还可以运行呢?

作者: jd808   发布时间: 2010-09-10

本帖最后由 davelv 于 2010-09-10 13:08 编辑

我看成上面的int了 --!
指针空间分配了没有?

作者: davelv   发布时间: 2010-09-10

相关阅读 更多