51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1739|回复: 3
打印 上一主题 下一主题

[原创] 帮我看下这段代码那里错了。。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-23 15:19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int ls;
char *SN[10];
int i;
Action()
{
lr_load_dll("key.dll");
while(i<10)
{
  char *key = (char*)malloc(33);
  memset(key, 0, 33);
  matkey_gen(key);
  ls = key_valid(key);
  lr_error_message("key = %s",key);
  lr_error_message("i=%d",i);
  SN = key;
        i=i+1;
  lr_save_string(SN,"host-key");
  break;
    }
lr_error_message("host-key = %s",lr_eval_string("{host-key}"));
    return 0;
}


主要就是buffer怎么向字符串转换!
我是想先用dll生成的buffer存到数组中备用,然后把数组中的值取出来存到参数。后面在把参数发送给服务器。
现在是把数组中的值取出来存到参数host-key的时候报的错误。错误代码是:Error: C interpreter run time error: Action.c (17):  Error -- memory violation : Exception ACCESS_VIOLATION received.


谢谢大家帮我看看。。互相交流下!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情

    2016-12-30 10:59
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2008-5-23 16:07:21 | 只看该作者
    *SN = key;
            i=i+1;
      lr_save_string(*SN,"host-key");
    这样呢,用strcpy也可以

    [ 本帖最后由 iori 于 2008-5-23 16:18 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-5-23 16:23:36 | 只看该作者
    这个问题基本解决了!主要是SN的值在出了循环以后就没有了!所以复制的时候错误了!
    现在改成。int ls;
    char *SN[4];
    int i = 0;
    Action()
    {
            char *key = 0;
            lr_load_dll("key.dll");

                    if(i < 4)
                    {
                            SN = (char*)malloc(33);
                            memset(SN, 0, 33);
                            matkey_gen(SN);
                            ls = key_valid(SN);
                            lr_error_message("key = %s",SN);
                            lr_error_message("i=%d",i);
                            lr_save_string(SN,"host-key");
                            i=i+1;
                    }
                    else
                    {
                            lr_error_message("i=%d",i);
                            lr_save_string(SN[i % 4],"host-key");
                            i=i+1;
                    }

            lr_error_message("key1 = %s",lr_eval_string("{host-key}"));
            return 0;
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2008-5-23 16:23:44 | 只看该作者
    我最初衷的意思是先从DLL里取到值。然后把值存到数组中,以后向服务器发送值都从数组中取。
    这个原因是DLL每次生成的值都是唯一的,这样向服务器发送的值都是唯一,数据库只会做插入的操作。
    我想把值存到数组中就是想在前面DLL生成的若干值存到数组中,在一定次数以后的值就不用DLL生成,可以直接从数组中取出。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 22:36 , Processed in 0.067991 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表