C_and_CPP 板


LINE

※ 引述《dendrobium (石斛兰)》之铭言: : 遇到的问题: (题意请描述清楚) : 大家好,我想问一题考古题 : 题目是 中正资工95年 程式设计 第17题 题目为 : Define a C structure type Complex that represents complex numbers and a C : function multiply that performs the multiplication of complex numbers. The : prototype of the multiply is as follows: : Complex *multiply(Complex*, Complex*) : 开发平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : 纯C : 有问题的地方: (请善用置底文标色功能) : 我的在於题目的prototype已经定好了 : 所以multiply必须回传一个Complex* : 可是回传一个malloc出来的位置又是不好的习惯 : 回传static 的位置又会有重复call这个function的问题 : ( 像是 multiply(multiply(A,B),C) 这种 ) : 想请问一下有没有好的写法可以回传一个Complex空间又没有以上的问题 : 补充说明: : 我的code : typedef struct complex{ : int real,imag; : }Complex; : Complex *multiply( Complex *A, Complex *B) : { : Complex *C = ??? //<= 问题点 : C->Real = .... : C->Imag = .... : return C; : } : 抱歉我的pcmanx对於复制有控制码东西会怪怪的 : 所以就不上色了 Complex* multiply( Complex *pl, Complex *pr){ static Complex res; Complex temp; temp.real = (pl->real)*(pr->real)-(pl->imag)*(pr->imag); temp.imag = (pl->real)*(pr->imag)+(pl->imag)*(pr->real); memcpy( &res,&temp,sizeof(res) ); return &res; } 这样可以吗? -------------------------------------------------------- 其实这个问题满好玩的 可能要用 linked list 每次传进来的两个parameters 都检查是不是在linked list里面 如果有出现了 那就再 alloc再接上去 一直到 multiply 结束 client 可以call end_of_FxxK_multiply() 来free list 不过应该有神人 可以用 递回+stack 方式解吧? (LL 下面有人推文了 我拿上来用 thx~ ) -- --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.115.74
1F:→ softwind:用 local stack variable 充当 额外的空间... 11/10 01:53
2F:推 VictorTom:函数被呼叫两次分别存回两个指标变数时就....XD 11/10 01:54
3F:→ softwind:也对 这样只能解 m(m(A,B),C) 这一种 11/10 01:58
4F:推 tingyushyu:typedef struct complex{ 11/10 02:02
5F:→ tingyushyu: int real,imag; 11/10 02:02
6F:→ tingyushyu: struct complex *myself; 11/10 02:02
7F:→ tingyushyu:} 11/10 02:02
8F:→ tingyushyu:Complex; 11/10 02:03
※ 编辑: softwind 来自: 118.166.115.74 (11/10 02:08)
9F:→ tingyushyu:这样free(A.myself);就可以free到A了 11/10 02:03
10F:→ tingyushyu:myself指向这个struct的位址 11/10 02:04
11F:→ tingyushyu:囧..free(A->myself); 抱歉打错 11/10 02:05







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP