我想在函数getliststring(LPTSTR *liststr)中取一些字符串,通过接口参数传出去,试了几种方法都不行,主要是我想在这个函数里用strlen(liststr,buffer)把取得字符串拷到liststr然后传出去。老出错。
大家有什么好办法??

解决方案 »

  1.   

    上面写错了
    是strcpy(.......)
      

  2.   

    liststr所指向的空间必须是已经分配好的~!
    如果空间不够溢出出来的数据会使程序崩溃的
      

  3.   

    "一些字符串"是什么意思啊?
    是不是把几个字符串放在一个liststr里面?
    首先,liststr是不是为空?
    其次,在调用函数之前有没有为liststr申请足够的空间?
      

  4.   

    LPTSTR已经是指针类型,不用定义成LPTSTR *liststr;定义成LPTSTR liststr就可以了
    char a[10];
    memset(a,0,sizeof(a));
    LPTSTR lptest = a;// 
    getliststring(liststr);
    getliststring(LPTSTR liststr) {
    char buffer[100];
    memset(buffer,0,sizeof(buffer));
    strcpy(buffer,"sfafafa");
    strcpy(liststr,"ssss");
    }
    估计你是没有给lptest开空间
      

  5.   

    他要传出的是“一些字符串”,用LPTSTR*是对的。关键要决定是在函数外还是在函数内分配内存,你这个适合在函数内动态分配内存,首先得到字符串个数,分配LPTSTR*指针;然后利用lstrlen分别得到需要的字符串长度(别忘了+1),进行内存分配和lstrcpy。