c++ strtok不能得到2个token Borland
C++ strtok cant get 2 token Borland
char *ParseCmdX(char *buf,int len)
{
char *p;
p = strtok(buf," ,");
p = strtok(NULL," ,");
char *ptr = (char *)malloc(strlen(p)+1);
strcpy(ptr,p);
return ptr;
}
为什么我在p = strtok(NULL," ,");
获得访问违反错误?当我输入NULL参数时,它会中断…
你是如何调用这个函数的,它是如何分配的?记住,但是不能是只读的或const (strtok在调用时改变输入缓冲区)。
这个可以工作,因为x是可更改的:
char x[] = "das sdg hfg jgh";
char *c = ParseCmdX(x, strlen(x));
但是,seg错误:
char *y = "das sdg hfg jgh";
char *c = ParseCmdX(y, strlen(y));
您必须检查并查看是否第一次调用strtok,即strtok(但是,",")返回NULL或否,如果是,则下一次调用strtok将死亡。你要传递给ParseCmdX的具体内容是什么?
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 如何在C++中从两个单独的for循环中添加两个数组
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 处理多个异常集合的C++方法
- 什么时候在C++中返回常量引用是个好主意
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 尝试通过多个向量访问变量时,向量下标超出范围
- Ardunio UNO解决了多个重叠的定时器循环
- 如何返回一个类的两个对象相加的结果
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 数到第n个楼梯的路(顺序无关紧要)
- 基于多个条件处理地图中的所有元素
- 为多个会话保留XPtr
- 如何在C++中初始化嵌套类中的2个memeber
- 使用多个文件时"array bound is not an integer constant before ']' token"
- c++ strtok不能得到2个token Borland