unsigned char * 赋值

定义unsigned char *s
s = "1234567";
报错
无法从“const char [8]”转换为“unsigned char *”
应该怎样改
谢谢

s是一个指针,没有分配内存,可以定义是就赋值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-08
#include <iostream>
#include"string.h"
using namespace std;

void main()
{

unsigned char *s;
unsigned char p[2];
p[0]='1';
p[1]='2';
s=p;
int i=0;
for(unsigned char *q=s;i<2;i++,q++)
{
cout<<*q;
}
}
第2个回答  2011-09-08
没有给指针分别内存。
第3个回答  2011-09-08
unsigned char *s="1234567";追问

类似于这样
fun1(unsigned char *s, char *c)
{
k = "1234567";
}

追答

不行。
你可以动态分配内存,或者事先定义unsigned char s[MAX]//MAX是自己事先定义的一个宏

本回答被提问者采纳
第4个回答  2011-09-08
和不用std::string类型呢?它将字符串的问题处理得很好。