→ netsphere:因為b是pointer end 06/03 10:31
→ s8752199:可以跟我講怎麼解決嗎 謝謝! 06/03 10:45
→ adrianshum:你這段東西的問題超多. 你不如先去看書搞清楚 pointer 06/03 10:55
→ adrianshum:memcpy 的概念? memory allocation 看來也很不清楚 06/03 10:56
推 ledia:你的 b 在之前其它地方有 malloc 嗎? 06/03 11:21
→ ledia:又, memcpy 那一行你想要的行為是什麼, 因為傳 double ptr 06/03 11:22
→ ledia:很可能跟你想要的完全不一樣 06/03 11:22
→ s8752199:嗯 我現在加上了 b = (char*)malloc(sizeof(char)); 06/03 11:22
→ s8752199:我想把a的東西完全拷貝到b 06/03 11:23
推 VictorTom:如a大所說, 您還是把pointer, memory alloc, array, 還 06/03 11:26
→ VictorTom:有char string的用法再看一下吧; sizeof(char)就只有一 06/03 11:26
→ VictorTom:個char, 放了'\0'也就沒空間了. 如果您要copy的東西就 06/03 11:27
→ VictorTom:真的只有一個char, 那其他用*b = *a就做完了不用memcpy 06/03 11:27
→ s8752199:嗯 其實我現在是要拷貝一個struct只是打char以為大家 06/03 11:30
→ s8752199:比較方便看 06/03 11:31
→ s8752199:結果是錯誤的方法 XD 06/03 11:31
重新一次好了 謝謝
static tInfo *uInfo = NULL;
void show_Info(int n, tInfo *pInfo)
{
uInfo = (tInfo *)malloc(sizeof(tInfo)*n);
memcpy(&uInfo, &pInfo, sizeof(tInfo)*n);
free(pInfo);
}
這樣用法有誤嗎?
謝謝
※ 編輯: s8752199 來自: 61.222.31.187 (06/03 11:34)
推 VictorTom:如果struct只有普通變數沒有pointer那應該這樣就行了. 06/03 11:32
→ VictorTom:如果struct有pointer, 您要確認您要copy的就只要該位址 06/03 11:33
→ VictorTom:就好, 或者需要把指到的東西完整copy一份....@_@" 06/03 11:33
→ VictorTom:Er~~我說這樣就行了是包含推文a/b都有malloc合適size後. 06/03 11:34
→ s8752199:剛看了該struct 都是char 跟 int而已 06/03 11:35
推 VictorTom:我剛發現我錯了, 你的memcpy前兩個參數應該不用 & 06/03 11:36
→ VictorTom:memcpy是從某位址copy一段內容到另一個位址去.... 06/03 11:37
→ VictorTom:而你的uInfo與pInfo現在就應該是位址了....@_@" 06/03 11:37
→ s8752199:感恩 06/03 11:41