(*cut[m]+n++)=source[i];
改为
(char*)((int)cut[m]+n++)=source[i];出错是因为类型错误。

解决方案 »

  1.   

    sorry
    (*cut[m]+n++)=source[i];
    改为
    *(char*)((int)cut[m]+n++)=source[i];出错是因为类型错误。   
      

  2.   

    *(char*)((int)cut[m]+n++)=source[i];我该成这样也不对
      

  3.   

    兄弟你的代码很费解。我看是因为char *bb[3];你没有为你的这些指针分配空间
      

  4.   

    向楼上请教:
    您的意思是:用new分配吗?
      

  5.   

    加上一句:
    char* p = (char*)((int)cut[m]+n++);
    看看p是不是合法的值
      

  6.   

    加上char* p = (char*)((int)cut[m]+n++);合法,但运行还出错
      

  7.   

    strtok  目的是把一个较长的字符串以某一个字符(比方是:'\t')为断开点分成若干个字串。
      

  8.   

    to :whz_time(时间有限) 
    申明成数组要好一些,用new也没问题,只是要记得释放。
    你要是写两个循环就容易看得多了
      

  9.   

    hiahia~~~~~
    你只定义了三个指针bb[0],bb[1],bb[2]却没给它们赋值,还敢跟我说是合法的值?
      

  10.   

    char *bb[3];
    bb[0]="";
    bb[1]="";
    bb[2]="";
    我已经这样作了,还是有错。真是搞不明白。
      

  11.   

    我看了你的代码,认为你对内存分配还没有搞清楚(特别实指针和指针数组的初始化),编写的代码华而不实。
    char *bb[3];的意思是什么你知道吗?
    char *bb0,char *bb1,char *bb2;
    初始化应该
    bb[0] = new char[5];
    bb[1] = new char[5];
    bb[2] = new char[5];如果要的话我把你的程序改了一下#include "stdafx.h"
    #include "stdio.h"
    #include "string.h"
    #include "conio.h"int CutString(char *source,char *cut[],char ch);int main(int argc, char* argv[])
    {
    char aa[100]="abcd\tefgh\tijkl";
    char *bb[3];
    CutString(aa,bb,'\t');
    printf("%s",bb[1]);getch();return 0;
    }
    int CutString(char *source,char *cut[],char ch)
    {
    int i=0,n=0,m=0;
    if(source[0]==NULL)
    return 0;
    int j = strlen(source);
    for(i=0;i<=j;i++)
    {
    if(source[i]==ch||source[i]=='\0')
    {
    source[i]=0;
    m++;
    n=0;
    }
    else
    {
    if(n == 0){
          cut[m]=&source[i];//运行到这儿出错
      n++;
    }
    }
    }return ch;
    }我说话不好听,不过希望你正视自己的问题。
      

  12.   

    #include "stdio.h"
    #include "string.h"
    #include "conio.h"int CutString(char *source,char *cut[],char ch);int main(int argc, char* argv[])
    {
    char* aa="abcd\tefgh\tijkl";
    char* bb[3];
    CutString(aa,bb,'\t');
    printf("%s",bb[1]); getch(); return 0;
    }
    int CutString(char *source,char *cut[],char ch)
    {
    int i=0,n=0,m=0;
    if(source[0]==NULL)
    return 0;
    for(int j =0;j<3;j++)//分配空间
    {
    cut[j] = new char[10];
    }
    for(i=0;i<=(int)strlen(source);i++)
    {
    if(source[i]==ch||source[i]=='\0')
    {
    cut[m][n+1]='\0';
    m++;
    n=0;
    }
    else
    {
    cut[m][n++]=source[i];//运行到这儿出错
    }
    }
    return ch;
    }
    //这可以了,哎我也是眼高手低,搞了半天
      

  13.   

    谢谢各位帮忙!!to “lhj(努力加油)”
    非常感谢您的指点,我相信“良药苦口;……”,
    再一次的向您表示感谢!!!