我想分成兩個字符串傳遞給兩個孩子。第一部分應該是12'0'字符,第二部分應該是13'1'字符。當我執行這個代碼時,我沒有得到這些東西。特別是這是輸出。 家長左:00000000000 家長右:0000000000001 我不知道爲什麼,有人可以幫忙嗎?Malloc和strncpy
int bit_count(char *passed, int len){
int left = len/2;
int right =(len/2)+(len % 2);
char *lstring = malloc(sizeof(char)*(left+1));
char *rstring = malloc(sizeof(char)*(right+1));
strncpy(lstring, passed, sizeof(char)*12);
strncpy(rstring, passed+left, sizeof(char)*13);
printf("Parent Left: %s\n", lstring);
printf("Parent Right: %s\n", rstring);
爲什麼要計算左和右,如果你只是要硬編碼12和13在這裏。這個不成立。 – StoryTeller
對,我改變它只是爲了試圖瞭解發生了什麼。最終我會左右用戶。 – ReezaCoriza
您不需要乘以sizeof(char)' - strncpy的參數是要複製的字符數,而不是大小。 – Barmar