我傳遞字符串轉換結構,我的樂隊像這樣在for循環錯誤複製到結構
printf("copy = %s\n",copy_p);
str[i].string=(char*)malloc(strlen(copy_p)+1 * sizeof(char));
strcpy(str[i].string,copy_p);
printf("skop = %s\n" , str[i].string);
所以,如果copy_p
變量是「計劃已停止工作」,這是發生了什麼
printf("copy = %s\n",copy_p); // copy = Program has stopped working
printf("skop = %s\n" , str[i].string); // skop = Program has stopped working
但是,如果我打電話給這個printf("%s\n",str[0].string)
它輸出Program has stopped work!
爲什麼呢?但它不是喜歡這一切它工作的大部分輸入的時間
什麼類型是'copy_p',它的大小是多少? –
如果'copy_p'是一個指針,用'strlen'檢索字符串長度。 – Downvoter
我建議你使用一個臨時的:'int tempSize =(sizeof(copy_p)+1;',然後中斷並檢查tempSize。 –