举个例子胜过千言万语:
unsigned char *hello = (unsigned char*)malloc(STR_LEN * sizeof(unsigned char));
const char *str= "haha";
memcpy(hello, str, strlen(str) + 1);
如何打印整个 hello
变量的内容(printf("%s",..)
只会尊重 之前的部分\0
-终止而不是所有 STR_LEN
个字符)。
最佳答案
您可以使用fwrite
写入未格式化的数据:
char buf[4] = { 1, 2 };
fwrite(buf, 1, 4, stdout); // writes the bytes 1, 2, 0, 0
您可以使用 fwrite(hello, 1, STR_LEN, stdout)
,但请注意您不能读取未初始化的数据(因此您应该使用 calloc
或以其他方式初始化数据)。
关于C 打印整个字符串变量(忽略\0终止),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272712/