我的C語言技能有點生疏,而前幾天我正在做一個任務並碰到一些指針。我不知道爲什麼,但是這完全讓我難住了。所以,請原諒我,如果解決方案是微不足道的。將數據從一個指針複製到另一個seg故障
我寫下了下面的代碼,將一個指針中的數據複製到另一個指針。我不想使用memcpy,strcpy或任何其他功能。
char *word = "hello world!";
char *ptra = NULL;
ptra = malloc(strlen(word) + 1);
for (; word != '\0'; word++, ptra++) {
*ptra = *word;
}
*ptra = '\0';
現在,當我編譯這個,我得到一個分段錯誤。任何人都可以請幫我解決這個問題嗎?
該錯誤很容易解決,但可能有點棘手,特別是如果你是新手指針。別擔心,它會變得更容易。另外,你的內存分配中的'+ 1'也很好。這是人們(特別是新程序員)忘記的東西,並且導致各種難以追蹤的錯誤。 – 2013-03-08 23:22:29
在程序中,您直接增加了指針而不進行復制。因此,即使在執行復制之後,您可能無法使用該字符串,也無法在程序結束時釋放內存。製作指針的副本將有所幫助。 – Ganesh 2013-03-08 23:23:04
優秀點@Ganesh。 – 2013-03-08 23:25:32