一个例子说了一千多个单词:
unsigned char *hello = (unsigned char*)malloc(STR_LEN * sizeof(unsigned char));
const char *str= "haha";
memcpy(hello, str, strlen(str) + 1);
如何打印整个hello
-variable 的内容(printf("%s",..)
只尊重\0
-termination 之前的部分,而不是所有STR_LEN
字符)。
一个例子说了一千多个单词:
unsigned char *hello = (unsigned char*)malloc(STR_LEN * sizeof(unsigned char));
const char *str= "haha";
memcpy(hello, str, strlen(str) + 1);
如何打印整个hello
-variable 的内容(printf("%s",..)
只尊重\0
-termination 之前的部分,而不是所有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
的数据(因此您应该改用或以其他方式初始化数据)。
您必须编写自己的 for 循环,从 hello 到 hello+STR_LEN,并一次打印每个字符。
for (unsigned char *c = hello, e = hello +STR_LEN; c < e; ++c) {
printf("%c", *c);
}
int i;
for(i = 0; i < STR_LEN; i++) {
putchar(hello[i]);
}