Bri*_*ian 16 c c++ unsigned char
初始化的正确方法是unsigned char*什么?我目前正在这样做:
unsigned char* tempBuffer;
tempBuffer = "";
Run Code Online (Sandbox Code Playgroud)
或者我应该使用memset(tempBuffer, 0, sizeof(tempBuffer));?
Dmi*_*try 21
要"正确"初始化指针(unsigned char *如在您的示例中),您只需要做一个简单的操作
unsigned char *tempBuffer = NULL;
Run Code Online (Sandbox Code Playgroud)
如果要初始化unsigned chars 数组,可以执行以下任一操作:
unsigned char *tempBuffer = new unsigned char[1024]();
// and do not forget to delete it later
delete[] tempBuffer;
Run Code Online (Sandbox Code Playgroud)
要么
unsigned char tempBuffer[1024] = {};
Run Code Online (Sandbox Code Playgroud)
我还建议std::vector<unsigned char>你看一下,你可以像这样初始化:
std::vector<unsigned char> tempBuffer(1024, 0);
Run Code Online (Sandbox Code Playgroud)
第二种方法将为您留下空指针.请注意,这里没有为缓冲区声明任何空间,而是声明指向必须在别处创建的缓冲区的指针.如果将其初始化为"",则会使指针指向一个只有一个字节的静态缓冲区 - 空终止符.如果你想要一个缓冲区,你可以在以后写字符,使用Fred的数组建议或类似的东西malloc.
因为它是一个指针,你要么首先将它初始化为NULL,如下所示:
unsigned char* tempBuffer = NULL;
unsigned char* tempBuffer = 0;
Run Code Online (Sandbox Code Playgroud)
或指定变量的地址,如下所示:
unsigned char c = 'c';
unsigned char* tempBuffer = &c;
Run Code Online (Sandbox Code Playgroud)
编辑:如果您希望分配字符串,可以按如下方式完成:
unsigned char myString [] = "This is my string";
unsigned char* tmpBuffer = &myString[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65626 次 |
| 最近记录: |