int main(int argc, char **args) {
unsigned char* str = "hallo";
printf("String: %s\n",str);
uint8_t aktion, id;
uint32_t str_length;
aktion = 1;
id = 4;
str_length = strlen(str)+1;
unsigned char *buff;
buff = (unsigned char*) calloc(1,str_length+6);
memcpy(buff, &id, sizeof(id));
memcpy(buff+sizeof(id), &str_length, sizeof(str_length));
strcpy(buff+sizeof(id)+sizeof(str_length), str);
printf("Buffer+5: %s\n",buff+5));
memcpy(buff+sizeof(id)+sizeof(str_length)+str_length, &aktion, sizeof(aktion));
return 0;
}
爲什麼我不會輸出「hallo」?我仍然不確定使用指針算術和緩衝區。字符緩衝區中的許多緩衝區
問候
考慮到您將'calloc'的結果進行投遞的方式,我認爲這是C++。你應該使用'std :: string',而不是混淆裸指針。 –
你好,沒有它的c。 – user1324258
然後你不應該投射'calloc'的結果。 –