一个例子说超过千言万语:
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
个字符。
答案 0 :(得分:5)
您可以使用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
代替或以其他方式初始化数据)。
答案 1 :(得分:0)
你必须编写自己的for循环,从hello到hello + STR_LEN,并一次打印一个字符。
for (unsigned char *c = hello, e = hello +STR_LEN; c < e; ++c) {
printf("%c", *c);
}
答案 2 :(得分:0)
int i;
for(i = 0; i < STR_LEN; i++) {
putchar(hello[i]);
}